[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/CompilerInvocation_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1907 @@
+<!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: CompilerInvocation.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_cfd7caa53089bfce4c036750f74ca8fe.html">Frontend</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilerInvocation.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilerInvocation_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">//===--- CompilerInvocation.cpp -------------------------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#include "<a class="code" href="CompilerInvocation_8h.html">clang/Frontend/CompilerInvocation.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor">#include "<a class="code" href="Diagnostic_8h.html" title="Defines the Diagnostic-related interfaces.">clang/Basic/Diagnostic.h</a>"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include "<a class="code" href="FileManager_8h.html" title="Defines the clang::FileManager interface and associated types.">clang/Basic/FileManager.h</a>"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="preprocessor">#include "<a class="code" href="Version_8h.html" title="Defines version macros and version-related utility functions for Clang.">clang/Basic/Version.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="DriverDiagnostic_8h.html">clang/Driver/DriverDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">clang/Driver/Options.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="Util_8h.html">clang/Driver/Util.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="LangStandard_8h.html">clang/Frontend/LangStandard.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="Utils_8h.html">clang/Frontend/Utils.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="HeaderSearchOptions_8h.html">clang/Lex/HeaderSearchOptions.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="ASTReader_8h.html">clang/Serialization/ASTReader.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/Hashing.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/ADT/StringExtras.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/ADT/StringSwitch.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "llvm/ADT/Triple.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "llvm/Option/Arg.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "llvm/Option/ArgList.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "llvm/Option/OptTable.h"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "llvm/Option/Option.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "llvm/Support/FileSystem.h"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "llvm/Support/Host.h"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="preprocessor">#include "llvm/Support/Path.h"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="preprocessor">#include "llvm/Support/Process.h"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="preprocessor">#include "llvm/Support/system_error.h"</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="preprocessor">#include <sys/stat.h></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">// Initialization.</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> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a12df14bd01316b2cd061a895d8f9f0a2">   44</a></span> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a12df14bd01316b2cd061a895d8f9f0a2">CompilerInvocationBase::CompilerInvocationBase</a>()</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   : LangOpts(new <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a>()), TargetOpts(new <a class="code" href="classclang_1_1TargetOptions.html" title="Options for controlling the target.">TargetOptions</a>()),</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>     DiagnosticOpts(new <a class="code" href="classclang_1_1DiagnosticOptions.html" title="Options for controlling the compiler diagnostics engine.">DiagnosticOptions</a>()),</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>     HeaderSearchOpts(new <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a>()),</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>     PreprocessorOpts(new <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</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"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a82ea384e10fff6be4afaef69ff81cc33">   50</a></span> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a12df14bd01316b2cd061a895d8f9f0a2">CompilerInvocationBase::CompilerInvocationBase</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompilerInvocationBase.html">CompilerInvocationBase</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>)</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   : <a class="code" href="classllvm_1_1RefCountedBase.html">RefCountedBase</a><<a class="code" href="classclang_1_1CompilerInvocation.html" title="Helper class for holding the data necessary to invoke the compiler.">CompilerInvocation</a>>(),</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     LangOpts(new <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a>(*X.getLangOpts())), </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     TargetOpts(new <a class="code" href="classclang_1_1TargetOptions.html" title="Options for controlling the target.">TargetOptions</a>(X.getTargetOpts())),</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     DiagnosticOpts(new <a class="code" href="classclang_1_1DiagnosticOptions.html" title="Options for controlling the compiler diagnostics engine.">DiagnosticOptions</a>(X.getDiagnosticOpts())),</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     HeaderSearchOpts(new <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a>(X.getHeaderSearchOpts())),</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     PreprocessorOpts(new <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a>(X.getPreprocessorOpts())) {}</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">// Deserialization (from args)</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> </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="keyword">using namespace </span>clang::driver;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="keyword">using namespace </span>clang::driver::options;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="keyword">using namespace </span>llvm::opt;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#ae17897a14bcc410df4c75242f9dc35b0">   68</a></span> <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="CompilerInvocation_8cpp.html#ae17897a14bcc410df4c75242f9dc35b0">getOptimizationLevel</a>(ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> IK,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>                                      <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags) {</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <span class="keywordtype">unsigned</span> DefaultOpt = 0;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   <span class="keywordflow">if</span> (IK == <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6dfa99f06df95954fc34cd10518b75d8">IK_OpenCL</a> && !Args.hasArg(OPT_cl_opt_disable))</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>     DefaultOpt = 2;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT_O_Group)) {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_O0))</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>       <span class="keywordflow">return</span> 0;</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">if</span> (A->getOption().matches(options::OPT_Ofast))</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>       <span class="keywordflow">return</span> 3;</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>     assert (A->getOption().matches(options::OPT_O));</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>     StringRef <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>(A->getValue());</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>     <span class="keywordflow">if</span> (<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a> == <span class="stringliteral">"s"</span> || <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a> == <span class="stringliteral">"z"</span> || <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>.empty())</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>       <span class="keywordflow">return</span> 2;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_O, DefaultOpt, Diags);</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="keywordflow">return</span> DefaultOpt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> }</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a1ded6d1f9433b10751bd1629e652f9d5">   93</a></span> <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="CompilerInvocation_8cpp.html#a1ded6d1f9433b10751bd1629e652f9d5">getOptimizationLevelSize</a>(ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT_O_Group)) {</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_O)) {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>       <span class="keywordflow">switch</span> (A->getValue()[0]) {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>       <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>         <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>       <span class="keywordflow">case</span> <span class="charliteral">'s'</span>:</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>         <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>       <span class="keywordflow">case</span> <span class="charliteral">'z'</span>:</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>         <span class="keywordflow">return</span> 2;</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>   }</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   <span class="keywordflow">return</span> 0;</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="CompilerInvocation_8cpp.html#a437198a65b64cfaf85a6615192aec974">  109</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#a437198a65b64cfaf85a6615192aec974">addWarningArgs</a>(ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, std::vector<std::string> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>) {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="keywordflow">for</span> (arg_iterator I = Args.filtered_begin(OPT_W_Group),</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>          E = Args.filtered_end(); I != E; ++I) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>     Arg *A = *I;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     <span class="comment">// If the argument is a pure flag, add its name (minus the "W" at the beginning)</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="comment">// to the warning list. Else, add its value (for the OPT_W case).</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>     <span class="keywordflow">if</span> (A->getOption().getKind() == Option::FlagClass) {</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>       Warnings.push_back(A->getOption().getName().substr(1));</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> Idx = 0, End = A->getNumValues();</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>            Idx < End; ++Idx) {</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>         StringRef V = A->getValue(Idx);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>         <span class="comment">// "-Wl," and such are not warning options.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>         <span class="comment">// FIXME: Should be handled by putting these in separate flags.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>         <span class="keywordflow">if</span> (V.startswith(<span class="stringliteral">"l,"</span>) || V.startswith(<span class="stringliteral">"a,"</span>) || V.startswith(<span class="stringliteral">"p,"</span>))</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>           <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>         Warnings.push_back(V);</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">  129</span>   }</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> }</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a4f7921a803ddbb91abe4eff2e6830176">  132</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="CompilerInvocation_8cpp.html#a4f7921a803ddbb91abe4eff2e6830176">ParseAnalyzerArgs</a>(<a class="code" href="classclang_1_1AnalyzerOptions.html">AnalyzerOptions</a> &Opts, ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>                               <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags) {</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   <span class="keywordtype">bool</span> Success = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_analyzer_store)) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>     StringRef Name = A->getValue();</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <a class="code" href="namespaceclang.html#adc50890f77fd96c7c54babd32d54592a" title="AnalysisStores - Set of available analysis store models.">AnalysisStores</a> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = llvm::StringSwitch<AnalysisStores>(Name)</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> #define <a class="code" href="AnalyzerOptions_8h.html#a0e47309b6d11dffce5a107ac497d2ee8">ANALYSIS_STORE</a>(NAME, CMDFLAG, DESC, CREATFN) \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>       .Case(CMDFLAG, NAME##Model)</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="preprocessor">#include "clang/StaticAnalyzer/Core/Analyses.def"</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>       .Default(<a class="code" href="namespaceclang.html#adc50890f77fd96c7c54babd32d54592aa601edceca790af9afcb2ed6b99b2cfd9">NumStores</a>);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>     <span class="keywordflow">if</span> (Value == <a class="code" href="namespaceclang.html#adc50890f77fd96c7c54babd32d54592aa601edceca790af9afcb2ed6b99b2cfd9">NumStores</a>) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>         << A->getAsString(Args) << Name;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>       Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>       Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a84280b550d5419a3407623aadfd55e64">AnalysisStoreOpt</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</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> (Arg *A = Args.getLastArg(OPT_analyzer_constraints)) {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>     StringRef Name = A->getValue();</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     <a class="code" href="namespaceclang.html#a39f9e21fbc7b73893a67fa382f7ea77a" title="AnalysisConstraints - Set of available constraint models.">AnalysisConstraints</a> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = llvm::StringSwitch<AnalysisConstraints>(Name)</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> #define <a class="code" href="AnalyzerOptions_8h.html#a06485e10187d113de699348d13833acf">ANALYSIS_CONSTRAINTS</a>(NAME, CMDFLAG, DESC, CREATFN) \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>       .Case(CMDFLAG, NAME##Model)</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="preprocessor">#include "clang/StaticAnalyzer/Core/Analyses.def"</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>       .Default(<a class="code" href="namespaceclang.html#a39f9e21fbc7b73893a67fa382f7ea77aa35864754ee3a76ed6699db77fca88a44">NumConstraints</a>);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>     <span class="keywordflow">if</span> (Value == <a class="code" href="namespaceclang.html#a39f9e21fbc7b73893a67fa382f7ea77aa35864754ee3a76ed6699db77fca88a44">NumConstraints</a>) {</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>         << A->getAsString(Args) << Name;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>       Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>       Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a3f6b10ca720f3ad5aadbd49f321d29d8">AnalysisConstraintsOpt</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</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>   }</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_analyzer_output)) {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     StringRef Name = A->getValue();</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>     <a class="code" href="namespaceclang.html#ad155bfb0a2de8491736d14a6e55edbe4">AnalysisDiagClients</a> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = llvm::StringSwitch<AnalysisDiagClients>(Name)</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> #define <a class="code" href="AnalyzerOptions_8h.html#aa7c0f1de3fd11a9d9279f18701d74766">ANALYSIS_DIAGNOSTICS</a>(NAME, CMDFLAG, DESC, CREATFN) \</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>       .Case(CMDFLAG, PD_##NAME)</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="preprocessor">#include "clang/StaticAnalyzer/Core/Analyses.def"</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>       .Default(<a class="code" href="namespaceclang.html#ad155bfb0a2de8491736d14a6e55edbe4a46d96d84a05d17638e7a877ade19ed20">NUM_ANALYSIS_DIAG_CLIENTS</a>);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     <span class="keywordflow">if</span> (Value == <a class="code" href="namespaceclang.html#ad155bfb0a2de8491736d14a6e55edbe4a46d96d84a05d17638e7a877ade19ed20">NUM_ANALYSIS_DIAG_CLIENTS</a>) {</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>         << A->getAsString(Args) << Name;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>       Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>       Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a2d67499d5714c8e80d1a0c2c59ef687d">AnalysisDiagOpt</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     }</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>   }</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_analyzer_purge)) {</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>     StringRef Name = A->getValue();</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     <a class="code" href="namespaceclang.html#a8b199094d8ccf701c105457c73228f1a" title="AnalysisPurgeModes - Set of available strategies for dead symbol removal.">AnalysisPurgeMode</a> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = llvm::StringSwitch<AnalysisPurgeMode>(Name)</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> #define <a class="code" href="AnalyzerOptions_8h.html#ae776c640ee57562d9cf5555c294f21b0">ANALYSIS_PURGE</a>(NAME, CMDFLAG, DESC) \</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>       .Case(CMDFLAG, NAME)</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="preprocessor">#include "clang/StaticAnalyzer/Core/Analyses.def"</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>       .Default(<a class="code" href="namespaceclang.html#a8b199094d8ccf701c105457c73228f1aa902cb0ed6653d01dd29c4f2b4638b817">NumPurgeModes</a>);</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>     <span class="keywordflow">if</span> (Value == <a class="code" href="namespaceclang.html#a8b199094d8ccf701c105457c73228f1aa902cb0ed6653d01dd29c4f2b4638b817">NumPurgeModes</a>) {</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>         << A->getAsString(Args) << Name;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>       Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>       Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#aa2e8b09595f0de72b90682df4c3ac671">AnalysisPurgeOpt</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>     }</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>   }</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_analyzer_inlining_mode)) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>     StringRef Name = A->getValue();</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>     <a class="code" href="namespaceclang.html#ae8a867f2063413fa95777e6deea64f8f" title="AnalysisInlineFunctionSelection - Set of inlining function selection heuristics.">AnalysisInliningMode</a> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = llvm::StringSwitch<AnalysisInliningMode>(Name)</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> #define <a class="code" href="AnalyzerOptions_8h.html#ab2f2d9eee2af5f335660b5128a1fcd79">ANALYSIS_INLINING_MODE</a>(NAME, CMDFLAG, DESC) \</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>       .Case(CMDFLAG, NAME)</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="preprocessor">#include "clang/StaticAnalyzer/Core/Analyses.def"</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>       .Default(<a class="code" href="namespaceclang.html#ae8a867f2063413fa95777e6deea64f8faf4580e8b0e24df699183c5007eb78779">NumInliningModes</a>);</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>     <span class="keywordflow">if</span> (Value == <a class="code" href="namespaceclang.html#ae8a867f2063413fa95777e6deea64f8faf4580e8b0e24df699183c5007eb78779">NumInliningModes</a>) {</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>         << A->getAsString(Args) << Name;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>       Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>       Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#af4e6c49d9b9e8cc9d28f21366a792edd" title="The mode of function selection used during inlining.">InliningMode</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>     }</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   }</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>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a114ee6f17597df03408978c5691348da">ShowCheckerHelp</a> = Args.hasArg(OPT_analyzer_checker_help);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a54800d98ae6a55a4461ad962da77ccf8">visualizeExplodedGraphWithGraphViz</a> =</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>     Args.hasArg(OPT_analyzer_viz_egraph_graphviz);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a92b3b4d2493f2a2eccd994b4f6f98fea">visualizeExplodedGraphWithUbiGraph</a> =</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     Args.hasArg(OPT_analyzer_viz_egraph_ubigraph);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a26ff5e4f64aa10fb4b560539ea1cd707" title="Do not re-analyze paths leading to exhausted nodes with a different strategy. We get better code cove...">NoRetryExhausted</a> = Args.hasArg(OPT_analyzer_disable_retry_exhausted);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a9b72efad06bad0e71c5f0babd1fd5da9">AnalyzeAll</a> = Args.hasArg(OPT_analyzer_opt_analyze_headers);</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#add42d6b6d53408c55c09584a216ec589">AnalyzerDisplayProgress</a> = Args.hasArg(OPT_analyzer_display_progress);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a11ff6991fdd9b4d25da8d790a27a94a1">AnalyzeNestedBlocks</a> =</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     Args.hasArg(OPT_analyzer_opt_analyze_nested_blocks);</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a09103beca76b0d2b1e2666e3c8de625e" title="The flag regulates if we should eagerly assume evaluations of conditionals, thus, bifurcating the pat...">eagerlyAssumeBinOpBifurcation</a> = Args.hasArg(OPT_analyzer_eagerly_assume);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a74f188a56e67d267bbd863bd78796b9f">AnalyzeSpecificFunction</a> = Args.getLastArgValue(OPT_analyze_function);</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#ab05fb67948eb54a44fb61085682f98cd">UnoptimizedCFG</a> = Args.hasArg(OPT_analysis_UnoptimizedCFG);</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#abcd90b8eb60a8605f9d5ba211473a64d">TrimGraph</a> = Args.hasArg(OPT_trim_egraph);</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a688f8ac90648d3bf0cc0912edf448049" title="The maximum number of times the analyzer visits a block.">maxBlockVisitOnPath</a> =</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_analyzer_max_loop, 4, Diags);</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#ab355517da0bacfc9abfb2e6032d4eeed">PrintStats</a> = Args.hasArg(OPT_analyzer_stats);</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#aba3edfacf90ef09fe2a1dc9869720fa9" title="The inlining stack depth limit.">InlineMaxStackDepth</a> =</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_analyzer_inline_max_stack_depth,</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>                          Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#aba3edfacf90ef09fe2a1dc9869720fa9" title="The inlining stack depth limit.">InlineMaxStackDepth</a>, Diags);</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>   Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a4c1571a796100823ca8a9358e8feef85" title="Pair of checker name and enable/disable.">CheckersControlList</a>.clear();</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_analyzer_checker,</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>                                              OPT_analyzer_disable_checker),</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>          ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>     A->claim();</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>     <span class="keywordtype">bool</span> enable = (A->getOption().getID() == OPT_analyzer_checker);</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>     <span class="comment">// We can have a list of comma separated checker names, e.g:</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>     <span class="comment">// '-analyzer-checker=cocoa,unix'</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>     StringRef checkerList = A->getValue();</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<StringRef, 4></a> checkers;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>     checkerList.split(checkers, <span class="stringliteral">","</span>);</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = checkers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>       Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a4c1571a796100823ca8a9358e8feef85" title="Pair of checker name and enable/disable.">CheckersControlList</a>.push_back(std::make_pair(checkers[i], enable));</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>   </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>   <span class="comment">// Go through the analyzer configuration options.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_analyzer_config),</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>        ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>     A->claim();</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>     <span class="comment">// We can have a list of comma separated config names, e.g:</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     <span class="comment">// '-analyzer-config key1=val1,key2=val2'</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>     StringRef configList = A->getValue();</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<StringRef, 4></a> configVals;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>     configList.split(configVals, <span class="stringliteral">","</span>);</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = configVals.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>       StringRef key, val;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>       llvm::tie(key, val) = configVals[i].split(<span class="stringliteral">"="</span>);</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>       <span class="keywordflow">if</span> (val.empty()) {</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>         Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(),</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>                      diag::err_analyzer_config_no_value) << configVals[i];</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>         Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>         <span class="keywordflow">break</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>       <span class="keywordflow">if</span> (val.find(<span class="charliteral">'='</span>) != StringRef::npos) {</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>         Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(),</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>                      diag::err_analyzer_config_multiple_values)</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>           << configVals[i];</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>         Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>         <span class="keywordflow">break</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>       Opts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a5ec516a3b35c6635a03b5b9dc55e3971" title="A key-value table of use-specified configuration values.">Config</a>[key] = val;</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> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="keywordflow">return</span> Success;</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> }</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a1b6b577e9f76e316f44c92dd6d3b5c11">  286</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="CompilerInvocation_8cpp.html#a1b6b577e9f76e316f44c92dd6d3b5c11">ParseMigratorArgs</a>(<a class="code" href="classclang_1_1MigratorOptions.html">MigratorOptions</a> &Opts, ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) {</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   Opts.<a class="code" href="classclang_1_1MigratorOptions.html#a538590a35c2812ce07ace757fafd7138">NoNSAllocReallocError</a> = Args.hasArg(OPT_migrator_no_nsalloc_error);</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>   Opts.<a class="code" href="classclang_1_1MigratorOptions.html#a59140d1d59b0d01cdb2ffb366623e933">NoFinalizeRemoval</a> = Args.hasArg(OPT_migrator_no_finalize_removal);</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>   <span class="keywordflow">return</span> <span class="keyword">true</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"><a class="code" href="CompilerInvocation_8cpp.html#a0b265a58a014887f6038018af0360f06">  292</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#a0b265a58a014887f6038018af0360f06">ParseCommentArgs</a>(<a class="code" href="structclang_1_1CommentOptions.html" title="Options for controlling comment parsing.">CommentOptions</a> &Opts, ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) {</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>   Opts.<a class="code" href="structclang_1_1CommentOptions.html#a8198a90760ac97cf8b1249b079b6f54d" title="Command names to treat as block commands in comments. Should not include the leading backslash...">BlockCommandNames</a> = Args.getAllArgValues(OPT_fcomment_block_commands);</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>   Opts.<a class="code" href="structclang_1_1CommentOptions.html#a7ba587db0f18af3838a52ca3121b5f4a" title="Treat ordinary comments as documentation comments.">ParseAllComments</a> = Args.hasArg(OPT_fparse_all_comments);</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> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#adc71d53dcb280e44dbfc375d52906f7d">  297</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="CompilerInvocation_8cpp.html#adc71d53dcb280e44dbfc375d52906f7d">ParseCodeGenArgs</a>(<a class="code" href="classclang_1_1CodeGenOptions.html">CodeGenOptions</a> &Opts, ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> IK,</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>                              <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags) {</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>   <span class="keywordtype">bool</span> Success = <span class="keyword">true</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>   Opts.OptimizationLevel = <a class="code" href="CompilerInvocation_8cpp.html#ae17897a14bcc410df4c75242f9dc35b0">getOptimizationLevel</a>(Args, IK, Diags);</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>   <span class="comment">// TODO: This could be done in Driver</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>   <span class="keywordtype">unsigned</span> MaxOptLevel = 3;</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>   <span class="keywordflow">if</span> (Opts.OptimizationLevel > MaxOptLevel) {</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>     <span class="comment">// If the optimization level is not supported, fall back on the default optimization</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::warn_drv_optimization_value)</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>         << Args.getLastArg(OPT_O)->getAsString(Args) << <span class="stringliteral">"-O"</span> << MaxOptLevel;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>     Opts.OptimizationLevel = MaxOptLevel;</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> </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>   <span class="comment">// We must always run at least the always inlining pass.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>   Opts.setInlining(</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>     (Opts.OptimizationLevel > 1) ? <a class="code" href="classclang_1_1CodeGenOptions.html#ab51ac09046af4bed52b31469edfcb084af0279bafa11520f1e27ef1960e97cf98">CodeGenOptions::NormalInlining</a></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>                                  : <a class="code" href="classclang_1_1CodeGenOptions.html#ab51ac09046af4bed52b31469edfcb084aedecfcf639cd52f0b6f8f7e1313c5ed1">CodeGenOptions::OnlyAlwaysInlining</a>);</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>   <span class="comment">// -fno-inline-functions overrides OptimizationLevel > 1.</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>   Opts.NoInline = Args.hasArg(OPT_fno_inline);</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>   Opts.setInlining(Args.hasArg(OPT_fno_inline_functions) ?</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>                      CodeGenOptions::OnlyAlwaysInlining : Opts.getInlining());</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>   <span class="keywordflow">if</span> (Args.hasArg(OPT_gline_tables_only)) {</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>     Opts.setDebugInfo(<a class="code" href="classclang_1_1CodeGenOptions.html#ab49a2a2a0a68577a07a9c0b730fb3cf6a083db280d0df0049b78ccc2c45f2f781">CodeGenOptions::DebugLineTablesOnly</a>);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(OPT_g_Flag) || Args.hasArg(OPT_gdwarf_2) ||</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>              Args.hasArg(OPT_gdwarf_3) || Args.hasArg(OPT_gdwarf_4)) {</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>     <span class="keywordflow">if</span> (Args.hasFlag(OPT_flimit_debug_info, OPT_fno_limit_debug_info, <span class="keyword">true</span>))</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>       Opts.setDebugInfo(<a class="code" href="classclang_1_1CodeGenOptions.html#ab49a2a2a0a68577a07a9c0b730fb3cf6ae0f1c5168d0708ca9bd151ea9d89a3d8">CodeGenOptions::LimitedDebugInfo</a>);</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>       Opts.setDebugInfo(<a class="code" href="classclang_1_1CodeGenOptions.html#ab49a2a2a0a68577a07a9c0b730fb3cf6a6d523cc8195d8b7eb3b7b0db87b50c53">CodeGenOptions::FullDebugInfo</a>);</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>   Opts.DebugColumnInfo = Args.hasArg(OPT_dwarf_column_info);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#aa3a0a15fcc6110f767eab58c46a0a962">SplitDwarfFile</a> = Args.getLastArgValue(OPT_split_dwarf_file);</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_gdwarf_2))</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>     Opts.DwarfVersion = 2;</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   <span class="keywordflow">else</span> <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_gdwarf_3))</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>     Opts.DwarfVersion = 3;</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>   <span class="keywordflow">else</span> <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_gdwarf_4))</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     Opts.DwarfVersion = 4;</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>   <span class="keywordflow">else</span> <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Opts.getDebugInfo() != <a class="code" href="classclang_1_1CodeGenOptions.html#ab49a2a2a0a68577a07a9c0b730fb3cf6a92d75b29d3c936f01974b7b291b59fad">CodeGenOptions::NoDebugInfo</a>)</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>     <span class="comment">// Default Dwarf version is 4 if we are generating debug information.</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     Opts.DwarfVersion = 4;</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>   Opts.DisableLLVMOpts = Args.hasArg(OPT_disable_llvm_optzns);</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>   Opts.DisableRedZone = Args.hasArg(OPT_disable_red_zone);</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>   Opts.ForbidGuardVariables = Args.hasArg(OPT_fforbid_guard_variables);</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>   Opts.UseRegisterSizedBitfieldAccess = Args.hasArg(</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>     OPT_fuse_register_sized_bitfield_access);</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>   Opts.RelaxedAliasing = Args.hasArg(OPT_relaxed_aliasing);</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>   Opts.StructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa);</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#af49d49949d74834d36d29de329174506">DwarfDebugFlags</a> = Args.getLastArgValue(OPT_dwarf_debug_flags);</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>   Opts.MergeAllConstants = !Args.hasArg(OPT_fno_merge_all_constants);</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>   Opts.NoCommon = Args.hasArg(OPT_fno_common);</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>   Opts.NoImplicitFloat = Args.hasArg(OPT_no_implicit_float);</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>   Opts.OptimizeSize = <a class="code" href="CompilerInvocation_8cpp.html#a1ded6d1f9433b10751bd1629e652f9d5">getOptimizationLevelSize</a>(Args);</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>   Opts.SimplifyLibCalls = !(Args.hasArg(OPT_fno_builtin) ||</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>                             Args.hasArg(OPT_ffreestanding));</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>   Opts.UnrollLoops =</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>       Args.hasFlag(OPT_funroll_loops, OPT_fno_unroll_loops,</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>                    (Opts.OptimizationLevel > 1 && !Opts.OptimizeSize));</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>   Opts.RerollLoops = Args.hasArg(OPT_freroll_loops);</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>   Opts.Autolink = !Args.hasArg(OPT_fno_autolink);</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a4eded3cdb34a0067370c22e3bdc91685" title="Name of the profile file to use with -fprofile-sample-use.">SampleProfileFile</a> = Args.getLastArgValue(OPT_fprofile_sample_use_EQ);</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>   Opts.AsmVerbose = Args.hasArg(OPT_masm_verbose);</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>   Opts.ObjCAutoRefCountExceptions = Args.hasArg(OPT_fobjc_arc_exceptions);</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>   Opts.CUDAIsDevice = Args.hasArg(OPT_fcuda_is_device);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>   Opts.CXAAtExit = !Args.hasArg(OPT_fno_use_cxa_atexit);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>   Opts.CXXCtorDtorAliases = Args.hasArg(OPT_mconstructor_aliases);</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a5b056acd72f8a753415942604972f30d" title="The code model to use (-mcmodel).">CodeModel</a> = Args.getLastArgValue(OPT_mcode_model);</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a47a47c09be10e5d1842456b5950132cb" title="Enable additional debugging information.">DebugPass</a> = Args.getLastArgValue(OPT_mdebug_pass);</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>   Opts.DisableFPElim = Args.hasArg(OPT_mdisable_fp_elim);</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>   Opts.DisableFree = Args.hasArg(OPT_disable_free);</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>   Opts.DisableTailCalls = Args.hasArg(OPT_mdisable_tail_calls);</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a305c144fd11adcbf7841315103af5d4b" title="The ABI to use for passing floating point arguments.">FloatABI</a> = Args.getLastArgValue(OPT_mfloat_abi);</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>   Opts.HiddenWeakVTables = Args.hasArg(OPT_fhidden_weak_vtables);</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>   Opts.LessPreciseFPMAD = Args.hasArg(OPT_cl_mad_enable);</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a596946d24ae1679422dac553a1b03d14" title="The float precision limit to use, if non-empty.">LimitFloatPrecision</a> = Args.getLastArgValue(OPT_mlimit_float_precision);</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>   Opts.NoInfsFPMath = (Args.hasArg(OPT_menable_no_infinities) ||</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>                        Args.hasArg(OPT_cl_finite_math_only)||</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>                        Args.hasArg(OPT_cl_fast_relaxed_math));</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   Opts.NoNaNsFPMath = (Args.hasArg(OPT_menable_no_nans) ||</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>                        Args.hasArg(OPT_cl_finite_math_only)||</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>                        Args.hasArg(OPT_cl_fast_relaxed_math));</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>   Opts.NoZeroInitializedInBSS = Args.hasArg(OPT_mno_zero_initialized_in_bss);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a0c000ea2b745214c4261a1f8a7354050" title="A list of command-line options to forward to the LLVM backend.">BackendOptions</a> = Args.getAllArgValues(OPT_backend_option);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>   Opts.NumRegisterParameters = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_mregparm, 0, Diags);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>   Opts.NoGlobalMerge = Args.hasArg(OPT_mno_global_merge);</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>   Opts.NoExecStack = Args.hasArg(OPT_mno_exec_stack);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>   Opts.EnableSegmentedStacks = Args.hasArg(OPT_split_stacks);</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>   Opts.RelaxAll = Args.hasArg(OPT_mrelax_all);</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>   Opts.OmitLeafFramePointer = Args.hasArg(OPT_momit_leaf_frame_pointer);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>   Opts.SaveTempLabels = Args.hasArg(OPT_msave_temp_labels);</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>   Opts.NoDwarf2CFIAsm = Args.hasArg(OPT_fno_dwarf2_cfi_asm);</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>   Opts.NoDwarfDirectoryAsm = Args.hasArg(OPT_fno_dwarf_directory_asm);</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   Opts.SoftFloat = Args.hasArg(OPT_msoft_float);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   Opts.StrictEnums = Args.hasArg(OPT_fstrict_enums);</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>   Opts.UnsafeFPMath = Args.hasArg(OPT_menable_unsafe_fp_math) ||</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>                       Args.hasArg(OPT_cl_unsafe_math_optimizations) ||</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>                       Args.hasArg(OPT_cl_fast_relaxed_math);</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>   Opts.UnwindTables = Args.hasArg(OPT_munwind_tables);</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#acebafc5a2c6fa764d2213e56e71f3002" title="The name of the relocation model to use.">RelocationModel</a> = Args.getLastArgValue(OPT_mrelocation_model, <span class="stringliteral">"pic"</span>);</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#aa1521cd429cdb1efcf88546cec067204">TrapFuncName</a> = Args.getLastArgValue(OPT_ftrap_function_EQ);</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>   Opts.UseInitArray = Args.hasArg(OPT_fuse_init_array);</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>   Opts.FunctionSections = Args.hasFlag(OPT_ffunction_sections,</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>                                        OPT_fno_function_sections, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>   Opts.DataSections = Args.hasFlag(OPT_fdata_sections,</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>                                    OPT_fno_data_sections, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>   Opts.VectorizeBB = Args.hasArg(OPT_vectorize_slp_aggressive);</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>   Opts.VectorizeLoop = Args.hasArg(OPT_vectorize_loops);</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   Opts.VectorizeSLP = Args.hasArg(OPT_vectorize_slp);</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>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a7c94a9c3d9c6708972867f4aba7ffe33">MainFileName</a> = Args.getLastArgValue(OPT_main_file_name);</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>   Opts.VerifyModule = !Args.hasArg(OPT_disable_llvm_verifier);</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>   Opts.SanitizeRecover = !Args.hasArg(OPT_fno_sanitize_recover);</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>   Opts.DisableGCov = Args.hasArg(OPT_test_coverage);</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>   Opts.EmitGcovArcs = Args.hasArg(OPT_femit_coverage_data);</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>   Opts.EmitGcovNotes = Args.hasArg(OPT_femit_coverage_notes);</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   <span class="keywordflow">if</span> (Opts.EmitGcovArcs || Opts.EmitGcovNotes) {</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a76fb3d493292abd80e34abbf0c6d7f33">CoverageFile</a> = Args.getLastArgValue(OPT_coverage_file);</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>     Opts.CoverageExtraChecksum = Args.hasArg(OPT_coverage_cfg_checksum);</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>     Opts.CoverageNoFunctionNamesInData =</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>         Args.hasArg(OPT_coverage_no_function_names_in_data);</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>     <span class="keywordflow">if</span> (Args.hasArg(OPT_coverage_version_EQ)) {</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>       StringRef CoverageVersion = Args.getLastArgValue(OPT_coverage_version_EQ);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>       <span class="keywordflow">if</span> (CoverageVersion.size() != 4) {</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>         Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>             << Args.getLastArg(OPT_coverage_version_EQ)->getAsString(Args)</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>             << CoverageVersion;</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>         memcpy(Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a2f9eee53c6e9e387def59d04bf0b8df7" title="The version string to put into coverage files.">CoverageVersion</a>, CoverageVersion.data(), 4);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>       }</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>     }</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>   }</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>   Opts.InstrumentFunctions = Args.hasArg(OPT_finstrument_functions);</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>   Opts.InstrumentForProfiling = Args.hasArg(OPT_pg);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   Opts.EmitOpenCLArgMetadata = Args.hasArg(OPT_cl_kernel_arg_info);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a66b62f606346fe5b0cb8ab92285fced2" title="The string to embed in debug information as the current working directory.">DebugCompilationDir</a> = Args.getLastArgValue(OPT_fdebug_compilation_dir);</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a96d981e4464941016db9216fdca5eefd" title="The name of the bitcode file to link before optzns.">LinkBitcodeFile</a> = Args.getLastArgValue(OPT_mlink_bitcode_file);</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a046909e87f33c128098201aa7022581a" title="Path to blacklist file for sanitizers.">SanitizerBlacklistFile</a> = Args.getLastArgValue(OPT_fsanitize_blacklist);</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   Opts.SanitizeMemoryTrackOrigins =</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>     Args.hasArg(OPT_fsanitize_memory_track_origins);</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>   Opts.SanitizeAddressZeroBaseShadow =</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>     Args.hasArg(OPT_fsanitize_address_zero_base_shadow);</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>   Opts.SanitizeUndefinedTrapOnError =</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>     Args.hasArg(OPT_fsanitize_undefined_trap_on_error);</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>   Opts.SSPBufferSize =</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_stack_protector_buffer_size, 8, Diags);</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>   Opts.StackRealignment = Args.hasArg(OPT_mstackrealign);</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_mstack_alignment)) {</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>     StringRef Val = A->getValue();</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>     <span class="keywordtype">unsigned</span> StackAlignment = Opts.StackAlignment;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>     Val.getAsInteger(10, StackAlignment);</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>     Opts.StackAlignment = StackAlignment;</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="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_fobjc_dispatch_method_EQ)) {</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>     StringRef Name = A->getValue();</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>     <span class="keywordtype">unsigned</span> Method = llvm::StringSwitch<unsigned>(Name)</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>       .Case(<span class="stringliteral">"legacy"</span>, <a class="code" href="classclang_1_1CodeGenOptions.html#afe50a67bc80c469be80283157f3c7900a10a36c49a4c112c6bb54ce5682390de6">CodeGenOptions::Legacy</a>)</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>       .Case(<span class="stringliteral">"non-legacy"</span>, <a class="code" href="classclang_1_1CodeGenOptions.html#afe50a67bc80c469be80283157f3c7900a5f03eb2d61e8f7c68dd0e907fdf8e90e">CodeGenOptions::NonLegacy</a>)</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>       .Case(<span class="stringliteral">"mixed"</span>, <a class="code" href="classclang_1_1CodeGenOptions.html#afe50a67bc80c469be80283157f3c7900ab9760792f6fdffe77ef861fa65833c1a">CodeGenOptions::Mixed</a>)</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>       .Default(~0U);</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>     <span class="keywordflow">if</span> (Method == ~0U) {</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value) << A->getAsString(Args) << Name;</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>       Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>       Opts.setObjCDispatchMethod(</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>         static_cast<CodeGenOptions::ObjCDispatchMethodKind>(Method));</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>   }</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_ftlsmodel_EQ)) {</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>     StringRef Name = A->getValue();</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>     <span class="keywordtype">unsigned</span> Model = llvm::StringSwitch<unsigned>(Name)</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>         .Case(<span class="stringliteral">"global-dynamic"</span>, <a class="code" href="classclang_1_1CodeGenOptions.html#adc18bd4de1ac3e409b5bd00ecdc396abaa0f735f144d5926785243e96fa510dcc">CodeGenOptions::GeneralDynamicTLSModel</a>)</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>         .Case(<span class="stringliteral">"local-dynamic"</span>, <a class="code" href="classclang_1_1CodeGenOptions.html#adc18bd4de1ac3e409b5bd00ecdc396aba9ff734c493b6b27c507a8f20082127e2">CodeGenOptions::LocalDynamicTLSModel</a>)</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>         .Case(<span class="stringliteral">"initial-exec"</span>, <a class="code" href="classclang_1_1CodeGenOptions.html#adc18bd4de1ac3e409b5bd00ecdc396abae2bb40eec2ba11848d328bd19aa74589">CodeGenOptions::InitialExecTLSModel</a>)</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>         .Case(<span class="stringliteral">"local-exec"</span>, <a class="code" href="classclang_1_1CodeGenOptions.html#adc18bd4de1ac3e409b5bd00ecdc396aba8b26b5f95452190b4a675fc8ed56e038">CodeGenOptions::LocalExecTLSModel</a>)</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>         .Default(~0U);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>     <span class="keywordflow">if</span> (Model == ~0U) {</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value) << A->getAsString(Args) << Name;</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>       Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>       Opts.setDefaultTLSModel(static_cast<CodeGenOptions::TLSModel>(Model));</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>     }</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>   }</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_ffp_contract)) {</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>     StringRef Val = A->getValue();</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>     <span class="keywordflow">if</span> (Val == <span class="stringliteral">"fast"</span>)</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>       Opts.setFPContractMode(<a class="code" href="classclang_1_1CodeGenOptions.html#a0c521b55002d8b372a211e5aad347da5a6176732fa5f1910bc5ec57108df9a38b">CodeGenOptions::FPC_Fast</a>);</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Val == <span class="stringliteral">"on"</span>)</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>       Opts.setFPContractMode(<a class="code" href="classclang_1_1CodeGenOptions.html#a0c521b55002d8b372a211e5aad347da5a0f457b08b0c44cbae8f7b9d1de5645db">CodeGenOptions::FPC_On</a>);</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Val == <span class="stringliteral">"off"</span>)</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>       Opts.setFPContractMode(<a class="code" href="classclang_1_1CodeGenOptions.html#a0c521b55002d8b372a211e5aad347da5abd950b23ae50b26fc8f9e367ca99900a">CodeGenOptions::FPC_Off</a>);</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value) << A->getAsString(Args) << Val;</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>   }</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> </div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_fpcc_struct_return, OPT_freg_struct_return)) {</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>     <span class="keywordflow">if</span> (A->getOption().matches(OPT_fpcc_struct_return)) {</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>       Opts.setStructReturnConvention(<a class="code" href="classclang_1_1CodeGenOptions.html#a3906254f2921eb3705e59315214d5e2ca1755226d7909b520dd8b681ff09ffd7e">CodeGenOptions::SRCK_OnStack</a>);</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>       assert(A->getOption().matches(OPT_freg_struct_return));</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>       Opts.setStructReturnConvention(<a class="code" href="classclang_1_1CodeGenOptions.html#a3906254f2921eb3705e59315214d5e2ca8ec9d276903bc7fbf9ad1321cb6e8551">CodeGenOptions::SRCK_InRegs</a>);</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>     }</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   }</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>   Opts.<a class="code" href="classclang_1_1CodeGenOptions.html#a3b9125542c11217ef7e5afdddc31541b" title="A list of dependent libraries.">DependentLibraries</a> = Args.getAllArgValues(OPT_dependent_lib);</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>   <span class="keywordflow">return</span> Success;</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> }</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> </div>
+<div class="line"><a name="l00517"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a6c08dac3c5a91453bf650fe9abedca24">  517</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#a6c08dac3c5a91453bf650fe9abedca24">ParseDependencyOutputArgs</a>(<a class="code" href="classclang_1_1DependencyOutputOptions.html">DependencyOutputOptions</a> &Opts,</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>                                       ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) {</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a2af2e55d7c3155825e5f8882978b4222" title="The file to write dependency output to.">OutputFile</a> = Args.getLastArgValue(OPT_dependency_file);</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a42763d5c239c12aa83283eb9f01cb95d">Targets</a> = Args.getAllArgValues(OPT_MT);</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#aa9c2d920eecfceb1b0e96f6d8c082698" title="Include system header dependencies.">IncludeSystemHeaders</a> = Args.hasArg(OPT_sys_header_deps);</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a3b34d2051d9092f4354ecd9684308ce8">UsePhonyTargets</a> = Args.hasArg(OPT_MP);</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#aefbe7389a301106e13606651c48f78e6" title="Show header inclusions (-H).">ShowHeaderIncludes</a> = Args.hasArg(OPT_H);</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a96f159d9012a1618571204a7cd0db98b">HeaderIncludeOutputFile</a> = Args.getLastArgValue(OPT_header_include_file);</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a1339f635fac18332fb64662a31cb32a6" title="Add missing headers to dependency list.">AddMissingHeaderDeps</a> = Args.hasArg(OPT_MG);</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#ac8b7c89a078d0fd46929a8a784016604" title="Print cl.exe style /showIncludes info.">PrintShowIncludes</a> = Args.hasArg(OPT_show_includes);</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>   Opts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a10c207bd3f0c997a884b605890405eef" title="The file to write GraphViz-formatted header dependencies to.">DOTOutputFile</a> = Args.getLastArgValue(OPT_dependency_dot);</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="keywordtype">bool</span> <a class="code" href="namespaceclang.html#a9c0953534d01ce273d08d025cf81f13a" title="Fill out Opts based on the options given in Args.">clang::ParseDiagnosticArgs</a>(<a class="code" href="classclang_1_1DiagnosticOptions.html" title="Options for controlling the compiler diagnostics engine.">DiagnosticOptions</a> &Opts, ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>                                 <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> *Diags) {</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>   <span class="keywordtype">bool</span> Success = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>   Opts.DiagnosticLogFile = Args.getLastArgValue(OPT_diagnostic_log_file);</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>   Opts.<a class="code" href="classclang_1_1DiagnosticOptions.html#ad7135103df760c7acb2ad48dea74e08c" title="Limit depth of macro expansion backtrace.">DiagnosticSerializationFile</a> =</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>     Args.getLastArgValue(OPT_diagnostic_serialized_file);</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>   Opts.IgnoreWarnings = Args.hasArg(OPT_w);</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>   Opts.NoRewriteMacros = Args.hasArg(OPT_Wno_rewrite_macros);</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>   Opts.Pedantic = Args.hasArg(OPT_pedantic);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>   Opts.PedanticErrors = Args.hasArg(OPT_pedantic_errors);</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>   Opts.ShowCarets = !Args.hasArg(OPT_fno_caret_diagnostics);</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>   Opts.ShowColors = Args.hasArg(OPT_fcolor_diagnostics);</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>   Opts.ShowColumn = Args.hasFlag(OPT_fshow_column,</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>                                  OPT_fno_show_column,</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>                                  <span class="comment">/*Default=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>   Opts.ShowFixits = !Args.hasArg(OPT_fno_diagnostics_fixit_info);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   Opts.ShowLocation = !Args.hasArg(OPT_fno_show_source_location);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>   Opts.ShowOptionNames = Args.hasArg(OPT_fdiagnostics_show_option);</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> </div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>   llvm::sys::Process::UseANSIEscapeCodes(Args.hasArg(OPT_fansi_escape_codes));</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">// Default behavior is to not to show note include stacks.</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>   Opts.ShowNoteIncludeStack = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_fdiagnostics_show_note_include_stack,</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>                                OPT_fno_diagnostics_show_note_include_stack))</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>     <span class="keywordflow">if</span> (A->getOption().matches(OPT_fdiagnostics_show_note_include_stack))</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>       Opts.ShowNoteIncludeStack = <span class="keyword">true</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>   StringRef ShowOverloads =</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>     Args.getLastArgValue(OPT_fshow_overloads_EQ, <span class="stringliteral">"all"</span>);</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   <span class="keywordflow">if</span> (ShowOverloads == <span class="stringliteral">"best"</span>)</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>     Opts.setShowOverloads(<a class="code" href="namespaceclang.html#a066f28b64b12e835348655bf9a6adef1ae6199af37691d7057fa5b6ebb8d390b2" title="Show just the "best" overload candidates.">Ovl_Best</a>);</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ShowOverloads == <span class="stringliteral">"all"</span>)</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>     Opts.setShowOverloads(<a class="code" href="namespaceclang.html#a066f28b64b12e835348655bf9a6adef1a41150494219e0603be62e260605a6e94" title="Show all overloads.">Ovl_All</a>);</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>   <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>     Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>     <span class="keywordflow">if</span> (Diags)</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>       Diags-><a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>       << Args.getLastArg(OPT_fshow_overloads_EQ)->getAsString(Args)</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>       << ShowOverloads;</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>   }</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> </div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>   StringRef ShowCategory =</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>     Args.getLastArgValue(OPT_fdiagnostics_show_category, <span class="stringliteral">"none"</span>);</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>   <span class="keywordflow">if</span> (ShowCategory == <span class="stringliteral">"none"</span>)</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>     Opts.ShowCategories = 0;</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ShowCategory == <span class="stringliteral">"id"</span>)</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>     Opts.ShowCategories = 1;</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ShowCategory == <span class="stringliteral">"name"</span>)</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>     Opts.ShowCategories = 2;</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>   <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>     Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>     <span class="keywordflow">if</span> (Diags)</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>       Diags-><a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>       << Args.getLastArg(OPT_fdiagnostics_show_category)->getAsString(Args)</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>       << ShowCategory;</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>   }</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>   StringRef Format =</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>     Args.getLastArgValue(OPT_fdiagnostics_format, <span class="stringliteral">"clang"</span>);</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>   <span class="keywordflow">if</span> (Format == <span class="stringliteral">"clang"</span>)</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>     Opts.setFormat(<a class="code" href="classclang_1_1DiagnosticOptions.html#a369e9fe746b6fffe69708ae17f6403cdad7733d87621e1cbc2242b58a4c0e1274">DiagnosticOptions::Clang</a>);</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Format == <span class="stringliteral">"msvc"</span>)</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>     Opts.setFormat(<a class="code" href="classclang_1_1DiagnosticOptions.html#a369e9fe746b6fffe69708ae17f6403cdaa0df728d660c1ce5891b19232b79dcb3">DiagnosticOptions::Msvc</a>);</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Format == <span class="stringliteral">"msvc-fallback"</span>) {</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>     Opts.setFormat(<a class="code" href="classclang_1_1DiagnosticOptions.html#a369e9fe746b6fffe69708ae17f6403cdaa0df728d660c1ce5891b19232b79dcb3">DiagnosticOptions::Msvc</a>);</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>     Opts.CLFallbackMode = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Format == <span class="stringliteral">"vi"</span>)</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>     Opts.setFormat(<a class="code" href="classclang_1_1DiagnosticOptions.html#a369e9fe746b6fffe69708ae17f6403cdae8922016a1473f8cf70bd6ab3f0f4c63">DiagnosticOptions::Vi</a>);</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>   <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>     Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>     <span class="keywordflow">if</span> (Diags)</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>       Diags-><a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>       << Args.getLastArg(OPT_fdiagnostics_format)->getAsString(Args)</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>       << Format;</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>   }</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>   </div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>   Opts.ShowSourceRanges = Args.hasArg(OPT_fdiagnostics_print_source_range_info);</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>   Opts.ShowParseableFixits = Args.hasArg(OPT_fdiagnostics_parseable_fixits);</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>   Opts.ShowPresumedLoc = !Args.hasArg(OPT_fno_diagnostics_use_presumed_location);</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>   Opts.VerifyDiagnostics = Args.hasArg(OPT_verify);</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>   Opts.ElideType = !Args.hasArg(OPT_fno_elide_type);</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>   Opts.ShowTemplateTree = Args.hasArg(OPT_fdiagnostics_show_template_tree);</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>   Opts.ErrorLimit = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_ferror_limit, 0, Diags);</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>   Opts.MacroBacktraceLimit =</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fmacro_backtrace_limit,</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>                          <a class="code" href="classclang_1_1DiagnosticOptions.html#ac8a1fb4d48c60ce9b13624538e4f0841a789868c34cd54ce782d4ecd288e19701">DiagnosticOptions::DefaultMacroBacktraceLimit</a>, Diags);</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>   Opts.TemplateBacktraceLimit = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>       Args, OPT_ftemplate_backtrace_limit,</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>       <a class="code" href="classclang_1_1DiagnosticOptions.html#ac8a1fb4d48c60ce9b13624538e4f0841a62c1759ff6c9912393e2c65c45e66771">DiagnosticOptions::DefaultTemplateBacktraceLimit</a>, Diags);</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>   Opts.ConstexprBacktraceLimit = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>       Args, OPT_fconstexpr_backtrace_limit,</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>       <a class="code" href="classclang_1_1DiagnosticOptions.html#ac8a1fb4d48c60ce9b13624538e4f0841a155b92ecdd4e1c52b803fb69a977c4ba">DiagnosticOptions::DefaultConstexprBacktraceLimit</a>, Diags);</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>   Opts.TabStop = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_ftabstop,</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>                                     <a class="code" href="classclang_1_1DiagnosticOptions.html#ac8a1fb4d48c60ce9b13624538e4f0841a555d95b85cad86d9e46feb229739ce6d">DiagnosticOptions::DefaultTabStop</a>, Diags);</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>   <span class="keywordflow">if</span> (Opts.TabStop == 0 || Opts.TabStop > <a class="code" href="classclang_1_1DiagnosticOptions.html#ac8a1fb4d48c60ce9b13624538e4f0841a5ef7f8a1a27dc33e2299a33a1ac2a8cb">DiagnosticOptions::MaxTabStop</a>) {</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     Opts.TabStop = <a class="code" href="classclang_1_1DiagnosticOptions.html#ac8a1fb4d48c60ce9b13624538e4f0841a555d95b85cad86d9e46feb229739ce6d">DiagnosticOptions::DefaultTabStop</a>;</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>     <span class="keywordflow">if</span> (Diags)</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>       Diags-><a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::warn_ignoring_ftabstop_value)</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>       << Opts.TabStop << <a class="code" href="classclang_1_1DiagnosticOptions.html#ac8a1fb4d48c60ce9b13624538e4f0841a555d95b85cad86d9e46feb229739ce6d">DiagnosticOptions::DefaultTabStop</a>;</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>   }</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>   Opts.MessageLength = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fmessage_length, 0, Diags);</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>   <a class="code" href="CompilerInvocation_8cpp.html#a437198a65b64cfaf85a6615192aec974">addWarningArgs</a>(Args, Opts.<a class="code" href="classclang_1_1DiagnosticOptions.html#a49cc2c156ed8aa987e60ac26a934f859">Warnings</a>);</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="keywordflow">return</span> Success;</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span> }</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span> </div>
+<div class="line"><a name="l00640"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#aff89586a17c23f3f56576397ee763431">  640</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#aff89586a17c23f3f56576397ee763431">ParseFileSystemArgs</a>(<a class="code" href="classclang_1_1FileSystemOptions.html" title="Keeps track of options that affect how file operations are performed.">FileSystemOptions</a> &Opts, ArgList &Args) {</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>   Opts.<a class="code" href="classclang_1_1FileSystemOptions.html#ae4aca3787990759cfe1f748b259442ce" title="If set, paths are resolved as if the working directory was set to the value of WorkingDir.">WorkingDir</a> = Args.getLastArgValue(OPT_working_directory);</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> </div>
+<div class="line"><a name="l00644"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a08793a3c6033b3d084ed76da2a6a1ac5">  644</a></span> <span class="keyword">static</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> <a class="code" href="CompilerInvocation_8cpp.html#a08793a3c6033b3d084ed76da2a6a1ac5">ParseFrontendArgs</a>(<a class="code" href="classclang_1_1FrontendOptions.html" title="FrontendOptions - Options for controlling the behavior of the frontend.">FrontendOptions</a> &Opts, ArgList &Args,</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>                                    <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags) {</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a1b2178b42b74358fd32479f36c85f784" title="Parse and perform semantic analysis.">frontend::ParseSyntaxOnly</a>;</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_Action_Group)) {</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>     <span class="keywordflow">switch</span> (A->getOption().getID()) {</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>       llvm_unreachable(<span class="stringliteral">"Invalid option in group!"</span>);</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>     <span class="keywordflow">case</span> OPT_ast_list:</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494afc3d2654ad2fbabc69dbe1c6b3b97095" title="Parse ASTs and list Decl nodes.">frontend::ASTDeclList</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     <span class="keywordflow">case</span> OPT_ast_dump:</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ab105e93166dee683e1dad5c4ee30dbf1" title="Parse ASTs and dump them.">frontend::ASTDump</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>     <span class="keywordflow">case</span> OPT_ast_print:</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494aa22b521b51a38c91cb13b8f641b3428f" title="Parse ASTs and print them.">frontend::ASTPrint</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>     <span class="keywordflow">case</span> OPT_ast_view:</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a64f67bf848de54612fd1d89b39721282" title="Parse ASTs and view them in Graphviz.">frontend::ASTView</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>     <span class="keywordflow">case</span> OPT_dump_raw_tokens:</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a714416fc79c63940353f5c24b7b8dfbd" title="Dump out raw tokens.">frontend::DumpRawTokens</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>     <span class="keywordflow">case</span> OPT_dump_tokens:</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ab699642252b68744b5f8dc92f4aa2fdf" title="Dump out preprocessed tokens.">frontend::DumpTokens</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>     <span class="keywordflow">case</span> OPT_S:</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494aba032597b2814d4f4baa1de19cc4719d" title="Emit a .s file.">frontend::EmitAssembly</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>     <span class="keywordflow">case</span> OPT_emit_llvm_bc:</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a308259874f93b39f7b6833d47ecf516f" title="Emit a .bc file.">frontend::EmitBC</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>     <span class="keywordflow">case</span> OPT_emit_html:</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ad7b8ae316dd885aab7f1dc0c90177771" title="Translate input source into HTML.">frontend::EmitHTML</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>     <span class="keywordflow">case</span> OPT_emit_llvm:</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a4868b11dd199f5fa5bb6845e7a2f2ba1" title="Emit a .ll file.">frontend::EmitLLVM</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>     <span class="keywordflow">case</span> OPT_emit_llvm_only:</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494aecf7b0553ab02539d17e6f169ee32097" title="Generate LLVM IR, but do not emit anything.">frontend::EmitLLVMOnly</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>     <span class="keywordflow">case</span> OPT_emit_codegen_only:</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494abf59c8ec00b57f5c4def16d1a1812776" title="Generate machine code, but don't emit anything.">frontend::EmitCodeGenOnly</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>     <span class="keywordflow">case</span> OPT_emit_obj:</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a6ee1c7655e5c8b7053fdfaf0440114c7" title="Emit a .o file.">frontend::EmitObj</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>     <span class="keywordflow">case</span> OPT_fixit_EQ:</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a989c7ac9b0e522365f41e6e1e48d6d96" title="If given, the new suffix for fix-it rewritten files.">FixItSuffix</a> = A->getValue();</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>       <span class="comment">// fall-through!</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>     <span class="keywordflow">case</span> OPT_fixit:</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ab6e7c5aeded6370019f90d02ecac339d" title="Parse and apply any fixits to the source.">frontend::FixIt</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>     <span class="keywordflow">case</span> OPT_emit_module:</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494af92c241d1bd453a60a8e57c5be797dcf" title="Generate pre-compiled module.">frontend::GenerateModule</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>     <span class="keywordflow">case</span> OPT_emit_pch:</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ae47f6aa1ff0396b672fe55bc6d20c3c1" title="Generate pre-compiled header.">frontend::GeneratePCH</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>     <span class="keywordflow">case</span> OPT_emit_pth:</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a3bb2983b53bcf43494f3ba4eb17279b3" title="Generate pre-tokenized header.">frontend::GeneratePTH</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>     <span class="keywordflow">case</span> OPT_init_only:</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a607f02d2eeb6b3699744dad3bbd15d99" title="Only execute frontend initialization.">frontend::InitOnly</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>     <span class="keywordflow">case</span> OPT_fsyntax_only:</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a1b2178b42b74358fd32479f36c85f784" title="Parse and perform semantic analysis.">frontend::ParseSyntaxOnly</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>     <span class="keywordflow">case</span> OPT_module_file_info:</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a98aac0195d04c53ea0f9912de487118f" title="Dump information about a module file.">frontend::ModuleFileInfo</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>     <span class="keywordflow">case</span> OPT_print_decl_contexts:</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a33fd607a15830f5cf98ff4a6b65b7f06" title="Print DeclContext and their Decls.">frontend::PrintDeclContext</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>     <span class="keywordflow">case</span> OPT_print_preamble:</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a4bb4a78da6b9198dce92f9c2e6c26760" title="Print the "preamble" of the input file.">frontend::PrintPreamble</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>     <span class="keywordflow">case</span> OPT_E:</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a1361671389ae911b55eab0ed38f6da2e" title="-E mode.">frontend::PrintPreprocessedInput</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>     <span class="keywordflow">case</span> OPT_rewrite_macros:</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ac78b6afa8c5fb66eea418e7db40454fc" title="Expand macros but not #includes.">frontend::RewriteMacros</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>     <span class="keywordflow">case</span> OPT_rewrite_objc:</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a8ba87375ecbff647fa1056961780b51d" title="ObjC->C Rewriter.">frontend::RewriteObjC</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>     <span class="keywordflow">case</span> OPT_rewrite_test:</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a153bd49478d419c624847bcc17dd7d43" title="Rewriter playground.">frontend::RewriteTest</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>     <span class="keywordflow">case</span> OPT_analyze:</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a9b1fb8b91154c98283e0e67b56fe5238" title="Run one or more source code analyses.">frontend::RunAnalysis</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>     <span class="keywordflow">case</span> OPT_migrate:</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a4eb08c9f1c9d9074f3833e6e82f60274" title="Run migrator.">frontend::MigrateSource</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>     <span class="keywordflow">case</span> OPT_Eonly:</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a95463c071449e50857fe8f19dd4f80da" title="Just lex, no output.">frontend::RunPreprocessorOnly</a>; <span class="keywordflow">break</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>   }</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="keywordflow">if</span> (<span class="keyword">const</span> Arg* A = Args.getLastArg(OPT_plugin)) {</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#ac94ba317a2282e2b08829e2bfe1b1995" title="The list of plugins to load.">Plugins</a>.push_back(A->getValue(0));</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> = <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a680d6df9b916c04fec5229f9185f36c7" title="Run a plugin action,.">frontend::PluginAction</a>;</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a815be4121ce4188bf55dd23e140b8ea9" title="The name of the action to run when using a plugin action.">ActionName</a> = A->getValue();</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>     <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_plugin_arg),</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>            end = Args.filtered_end(); it != end; ++it) {</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>       <span class="keywordflow">if</span> ((*it)->getValue(0) == Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a815be4121ce4188bf55dd23e140b8ea9" title="The name of the action to run when using a plugin action.">ActionName</a>)</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>         Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a9594af38a8cc905c802e88966f399a0d" title="Args to pass to the plugin.">PluginArgs</a>.push_back((*it)->getValue(1));</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>     }</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>   }</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aba072c3d7dad6589f0c8464767f60e12" title="The list of plugin actions to run in addition to the normal action.">AddPluginActions</a> = Args.getAllArgValues(OPT_add_plugin);</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a64cc44ae6bc9a664013f448cbfefd7ef" title="Args to pass to the additional plugins.">AddPluginArgs</a>.resize(Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aba072c3d7dad6589f0c8464767f60e12" title="The list of plugin actions to run in addition to the normal action.">AddPluginActions</a>.size());</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>   <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, e = Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aba072c3d7dad6589f0c8464767f60e12" title="The list of plugin actions to run in addition to the normal action.">AddPluginActions</a>.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>     <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_plugin_arg),</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>            end = Args.filtered_end(); it != end; ++it) {</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>       <span class="keywordflow">if</span> ((*it)->getValue(0) == Opts.<a class="code" href="classclang_1_1FrontendOptions.html#aba072c3d7dad6589f0c8464767f60e12" title="The list of plugin actions to run in addition to the normal action.">AddPluginActions</a>[i])</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>         Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a64cc44ae6bc9a664013f448cbfefd7ef" title="Args to pass to the additional plugins.">AddPluginArgs</a>[i].push_back((*it)->getValue(1));</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> </div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_code_completion_at)) {</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a903a24bd127beba3fdd54b84329a5a27" title="If given, enable code completion at the provided location.">CodeCompletionAt</a> =</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>       <a class="code" href="structclang_1_1ParsedSourceLocation.html#acdc074ebe043044411f36b473bd528bf">ParsedSourceLocation::FromString</a>(A->getValue());</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>     <span class="keywordflow">if</span> (Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a903a24bd127beba3fdd54b84329a5a27" title="If given, enable code completion at the provided location.">CodeCompletionAt</a>.<a class="code" href="structclang_1_1ParsedSourceLocation.html#a917c224d7d608bc1cf3aebdf4a0cbf7f">FileName</a>.empty())</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>         << A->getAsString(Args) << A->getValue();</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>   }</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adccf396bebfe929285746d103e9d90b3" title="Disable memory freeing on exit.">DisableFree</a> = Args.hasArg(OPT_disable_free);</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span> </div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a7b09d06e2ab796fc22e43f67a6f36b5b" title="The output file, if any.">OutputFile</a> = Args.getLastArgValue(OPT_o);</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#ac94ba317a2282e2b08829e2bfe1b1995" title="The list of plugins to load.">Plugins</a> = Args.getAllArgValues(OPT_load);</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#ad946ec38adf247d42c789415e47e251c">RelocatablePCH</a> = Args.hasArg(OPT_relocatable_pch);</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a6e08945d86e8a124eb396d3cdce10ea1" title="Show the -help text.">ShowHelp</a> = Args.hasArg(OPT_help);</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a7c2d8c2da9a6d3b247d4aa3bafab6a1f">ShowStats</a> = Args.hasArg(OPT_print_stats);</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a471ab37cefff6bb313745e98baccdc2d">ShowTimers</a> = Args.hasArg(OPT_ftime_report);</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#ab0154bc4c17ed0350cc04b3d4009d87e" title="Show the -version text.">ShowVersion</a> = Args.hasArg(OPT_version);</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#ac92f92364ad72839439059d0881177c0" title="The list of AST files to merge.">ASTMergeFiles</a> = Args.getAllArgValues(OPT_ast_merge);</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a60fa0fabba621b6699782166f37e1707" title="A list of arguments to forward to LLVM's option processing; this should only be used for debugging an...">LLVMArgs</a> = Args.getAllArgValues(OPT_mllvm);</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#abf8ce49690645f7154bb63125c33925c">FixWhatYouCan</a> = Args.hasArg(OPT_fix_what_you_can);</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a7550122c0b8b4537b74c9b7ffbef0396" title="Apply fixes only for warnings.">FixOnlyWarnings</a> = Args.hasArg(OPT_fix_only_warnings);</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a6fe74cccd9fc1be15f90a21bcd6b2520" title="Apply fixes and recompile.">FixAndRecompile</a> = Args.hasArg(OPT_fixit_recompile);</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a53835c4307d3ba5be03d5eea51bc6602" title="Apply fixes to temporary files.">FixToTemporaries</a> = Args.hasArg(OPT_fixit_to_temp);</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a412e431cbeafc44f476b41499efa97a7" title="If given, filter dumped AST Decl nodes by this substring.">ASTDumpFilter</a> = Args.getLastArgValue(OPT_ast_dump_filter);</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a41dbe399e8b266d8f1cee9a18a8c72cc">ASTDumpLookups</a> = Args.hasArg(OPT_ast_dump_lookups);</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#afb81b7bd64b782bcc690119f2ed5fcbc">UseGlobalModuleIndex</a> = !Args.hasArg(OPT_fno_modules_global_index);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#acface48e3ca73e16bc8569dec5c42839">GenerateGlobalModuleIndex</a> = Opts.<a class="code" href="classclang_1_1FrontendOptions.html#afb81b7bd64b782bcc690119f2ed5fcbc">UseGlobalModuleIndex</a>;</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>   </div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a49040beb19ec84f87f56d587a1f38c7d">CodeCompleteOpts</a>.<a class="code" href="classCodeCompleteOptions.html#ac5b3d452e0447cddcf8f5882e2755b4b" title="Show macros in code completion results.">IncludeMacros</a></div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>     = Args.hasArg(OPT_code_completion_macros);</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a49040beb19ec84f87f56d587a1f38c7d">CodeCompleteOpts</a>.<a class="code" href="classCodeCompleteOptions.html#add5e87275781ae6d17e8ffcb3a862a1c" title="Show code patterns in code completion results.">IncludeCodePatterns</a></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>     = Args.hasArg(OPT_code_completion_patterns);</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a49040beb19ec84f87f56d587a1f38c7d">CodeCompleteOpts</a>.<a class="code" href="classCodeCompleteOptions.html#aea98aa991b2bdff783c211f6d96a8ab6" title="Show top-level decls in code completion results.">IncludeGlobals</a></div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>     = !Args.hasArg(OPT_no_code_completion_globals);</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a49040beb19ec84f87f56d587a1f38c7d">CodeCompleteOpts</a>.<a class="code" href="classCodeCompleteOptions.html#a6e0f45c95b365c35889d95b327a3b49c" title="Show brief documentation comments in code completion results.">IncludeBriefComments</a></div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>     = Args.hasArg(OPT_code_completion_brief_comments);</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>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#af6951beffdc22f1d45306f135b36254b" title="File name of the file that will provide record layouts (in the format produced by -fdump-record-layou...">OverrideRecordLayoutsFile</a></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>     = Args.getLastArgValue(OPT_foverride_record_layout_EQ);</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_arcmt_check,</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>                                      OPT_arcmt_modify,</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>                                      OPT_arcmt_migrate)) {</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>     <span class="keywordflow">switch</span> (A->getOption().getID()) {</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>       llvm_unreachable(<span class="stringliteral">"missed a case"</span>);</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>     <span class="keywordflow">case</span> OPT_arcmt_check:</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a43411a73aeb983f559af9ef143ccf674">ARCMTAction</a> = <a class="code" href="classclang_1_1FrontendOptions.html#ad9cd02398babfec40c57ef7c4015e494a091ebf9049aed61e26ffc7837a17ebf0">FrontendOptions::ARCMT_Check</a>;</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>     <span class="keywordflow">case</span> OPT_arcmt_modify:</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a43411a73aeb983f559af9ef143ccf674">ARCMTAction</a> = <a class="code" href="classclang_1_1FrontendOptions.html#ad9cd02398babfec40c57ef7c4015e494ae2785707805c5cc68fc62c514fa5c88c">FrontendOptions::ARCMT_Modify</a>;</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>     <span class="keywordflow">case</span> OPT_arcmt_migrate:</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a43411a73aeb983f559af9ef143ccf674">ARCMTAction</a> = <a class="code" href="classclang_1_1FrontendOptions.html#ad9cd02398babfec40c57ef7c4015e494affb76119d8929cf74a4e333db0d69498">FrontendOptions::ARCMT_Migrate</a>;</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>       <span class="keywordflow">break</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">  793</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a5046d502de6cbe88ac04d66d1bc427ee">MTMigrateDir</a> = Args.getLastArgValue(OPT_mt_migrate_directory);</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a9cfb12fb50e8982a3ea0a7e8392183f0">ARCMTMigrateReportOut</a></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>     = Args.getLastArgValue(OPT_arcmt_migrate_report_output);</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#ab0fb2d038fb704e6f316d56860078c58">ARCMTMigrateEmitARCErrors</a></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>     = Args.hasArg(OPT_arcmt_migrate_emit_arc_errors);</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span> </div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_objcmt_migrate_literals))</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9a68f79291d6a4f16050c6bce0e07d7f07" title="Enable migration to modern ObjC literals.">FrontendOptions::ObjCMT_Literals</a>;</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_subscripting))</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9a8f91411c748256de019a5a58b0d080db" title="Enable migration to modern ObjC subscripting.">FrontendOptions::ObjCMT_Subscripting</a>;</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_property))</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9ad45fabdc864a9efc6d495d63aa7e3d41" title="Enable migration to modern ObjC property.">FrontendOptions::ObjCMT_Property</a>;</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_readonly_property))</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9a7317f182493a74a235d795abe00fd286" title="Enable migration to modern ObjC readonly property.">FrontendOptions::ObjCMT_ReadonlyProperty</a>;</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_readwrite_property))</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9adcbc06ac1276804ecd221aaa3c00fc9d" title="Enable migration to modern ObjC readwrite property.">FrontendOptions::ObjCMT_ReadwriteProperty</a>;</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_annotation))</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9a1e754863b7a9b11f5d52e08fb33f8fa8" title="Enable annotation of ObjCMethods of all kinds.">FrontendOptions::ObjCMT_Annotation</a>;</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_returns_innerpointer_property))</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9affb62d2fa85a1570d30e0d95140e1a65" title="annotate property with NS_RETURNS_INNER_POINTER">FrontendOptions::ObjCMT_ReturnsInnerPointerProperty</a>;</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_instancetype))</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9a0f5d6a729aceada6c7793c10af1ad885" title="Enable migration of ObjC methods to 'instancetype'.">FrontendOptions::ObjCMT_Instancetype</a>;</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_nsmacros))</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9a4204548dce278232b4ff48c19c370519" title="Enable migration to NS_ENUM/NS_OPTIONS macros.">FrontendOptions::ObjCMT_NsMacros</a>;</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_protocol_conformance))</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9a2bc455fc0b4f697271267148ded527b0" title="Enable migration to add conforming protocols.">FrontendOptions::ObjCMT_ProtocolConformance</a>;</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_atomic_property))</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9a45f98e1652f0bbde513ac28da09a72a2" title="prefer 'atomic' property over 'nonatomic'.">FrontendOptions::ObjCMT_AtomicProperty</a>;</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_ns_nonatomic_iosonly))</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9ab9685ef7caadf1757d840aa6129db96d" title="use NS_NONATOMIC_IOSONLY for property 'atomic' attribute">FrontendOptions::ObjCMT_NsAtomicIOSOnlyProperty</a>;</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_objcmt_migrate_all))</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> |= <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9aa106011cb9d1d5c8a497fc7be87d1e5d">FrontendOptions::ObjCMT_MigrateDecls</a>;</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span> </div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a0361c187bd3f08ea148b0353d7819166">ObjCMTWhiteListPath</a> = Args.getLastArgValue(OPT_objcmt_white_list_dir_path);</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span> </div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>   <span class="keywordflow">if</span> (Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a43411a73aeb983f559af9ef143ccf674">ARCMTAction</a> != <a class="code" href="classclang_1_1FrontendOptions.html#ad9cd02398babfec40c57ef7c4015e494ae839fc45802e127df0c76a682e26ee20">FrontendOptions::ARCMT_None</a> &&</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>       Opts.<a class="code" href="classclang_1_1FrontendOptions.html#adc0a936d7b0bfe1c4ba162a5b783bd1f">ObjCMTAction</a> != <a class="code" href="classclang_1_1FrontendOptions.html#a438614e3c658349f5c541466e99dd2d9ad137c2884d3455d227a5941bf4940510">FrontendOptions::ObjCMT_None</a>) {</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_argument_not_allowed_with)</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>       << <span class="stringliteral">"ARC migration"</span> << <span class="stringliteral">"ObjC migration"</span>;</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>   }</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span> </div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>   <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> DashX = <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ad73666978b85ba86ad1c34344e8d22ac">IK_None</a>;</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_x)) {</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>     DashX = llvm::StringSwitch<InputKind>(A->getValue())</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>       .Case(<span class="stringliteral">"c"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4c84b88fbd27cf2e1ac5c465a32a511a">IK_C</a>)</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>       .Case(<span class="stringliteral">"cl"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6dfa99f06df95954fc34cd10518b75d8">IK_OpenCL</a>)</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>       .Case(<span class="stringliteral">"cuda"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a2f35df33303fed1d79a81ce9bc7f4077">IK_CUDA</a>)</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>       .Case(<span class="stringliteral">"c++"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10af9da9d80e200fbbe7f087765f9972c1f">IK_CXX</a>)</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>       .Case(<span class="stringliteral">"objective-c"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4a4054c30293576e9a09ce76410db6db">IK_ObjC</a>)</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>       .Case(<span class="stringliteral">"objective-c++"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a23bf74f481a55712ed26198171d8a3dd">IK_ObjCXX</a>)</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>       .Case(<span class="stringliteral">"cpp-output"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a3c22efd2370bb08a4f0067ec6d6b00aa">IK_PreprocessedC</a>)</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>       .Case(<span class="stringliteral">"assembler-with-cpp"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4018ed3c986549a1d96905a4708f715f">IK_Asm</a>)</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>       .Case(<span class="stringliteral">"c++-cpp-output"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a74ded3bb1ede37c40f151dd5fb2e7cb9">IK_PreprocessedCXX</a>)</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>       .Case(<span class="stringliteral">"objective-c-cpp-output"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ac573369146cd7d8456ce0356fff6a3d5">IK_PreprocessedObjC</a>)</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>       .Case(<span class="stringliteral">"objc-cpp-output"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ac573369146cd7d8456ce0356fff6a3d5">IK_PreprocessedObjC</a>)</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>       .Case(<span class="stringliteral">"objective-c++-cpp-output"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a729d086cdf877e52803b73ab3be819a7">IK_PreprocessedObjCXX</a>)</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>       .Case(<span class="stringliteral">"objc++-cpp-output"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a729d086cdf877e52803b73ab3be819a7">IK_PreprocessedObjCXX</a>)</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>       .Case(<span class="stringliteral">"c-header"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4c84b88fbd27cf2e1ac5c465a32a511a">IK_C</a>)</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>       .Case(<span class="stringliteral">"cl-header"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6dfa99f06df95954fc34cd10518b75d8">IK_OpenCL</a>)</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>       .Case(<span class="stringliteral">"objective-c-header"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4a4054c30293576e9a09ce76410db6db">IK_ObjC</a>)</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>       .Case(<span class="stringliteral">"c++-header"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10af9da9d80e200fbbe7f087765f9972c1f">IK_CXX</a>)</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>       .Case(<span class="stringliteral">"objective-c++-header"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a23bf74f481a55712ed26198171d8a3dd">IK_ObjCXX</a>)</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>       .Cases(<span class="stringliteral">"ast"</span>, <span class="stringliteral">"pcm"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6e091f96e7bc6407659089b0e0fa0b62">IK_AST</a>)</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>       .Case(<span class="stringliteral">"ir"</span>, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10af41e61b39aea3f735b903fdf7cd5049c">IK_LLVM_IR</a>)</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>       .Default(<a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ad73666978b85ba86ad1c34344e8d22ac">IK_None</a>);</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>     <span class="keywordflow">if</span> (DashX == <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ad73666978b85ba86ad1c34344e8d22ac">IK_None</a>)</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>         << A->getAsString(Args) << A->getValue();</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>   }</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span> </div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>   <span class="comment">// '-' is the default input if none is given.</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>   std::vector<std::string> Inputs = Args.getAllArgValues(OPT_INPUT);</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>   Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a95a3f648ae866e50b78434e049d87218" title="The input files and their types.">Inputs</a>.clear();</div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>   <span class="keywordflow">if</span> (Inputs.empty())</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>     Inputs.push_back(<span class="stringliteral">"-"</span>);</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Inputs.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>     <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> IK = DashX;</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>     <span class="keywordflow">if</span> (IK == <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ad73666978b85ba86ad1c34344e8d22ac">IK_None</a>) {</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>       IK = <a class="code" href="classclang_1_1FrontendOptions.html#ac75b7e70de732280430b681a5e1f1ad7">FrontendOptions::getInputKindForExtension</a>(</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>         StringRef(Inputs[i]).rsplit(<span class="charliteral">'.'</span>).second);</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>       <span class="comment">// FIXME: Remove this hack.</span></div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>       <span class="keywordflow">if</span> (i == 0)</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>         DashX = IK;</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>     }</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>     Opts.<a class="code" href="classclang_1_1FrontendOptions.html#a95a3f648ae866e50b78434e049d87218" title="The input files and their types.">Inputs</a>.push_back(<a class="code" href="classclang_1_1FrontendInputFile.html" title="An input file for the front end.">FrontendInputFile</a>(Inputs[i], IK));</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>   }</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span> </div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>   <span class="keywordflow">return</span> DashX;</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span> }</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span> </div>
+<div class="line"><a name="l00883"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a21e87a1469b3212140f3befc6c37c4c6">  883</a></span> std::string <a class="code" href="classclang_1_1CompilerInvocation.html#a21e87a1469b3212140f3befc6c37c4c6" title="Get the directory where the compiler headers reside, relative to the compiler binary (found by the pa...">CompilerInvocation::GetResourcesPath</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Argv0,</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>                                                  <span class="keywordtype">void</span> *MainAddr) {</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(llvm::sys::fs::getMainExecutable(Argv0, MainAddr));</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span> </div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>   <span class="keywordflow">if</span> (!P.empty()) {</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>     llvm::sys::path::remove_filename(P); <span class="comment">// Remove /clang from foo/bin/clang</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>     llvm::sys::path::remove_filename(P); <span class="comment">// Remove /bin   from foo/bin</span></div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span> </div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>     <span class="comment">// Get foo/lib/clang/<version>/include</span></div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>     llvm::sys::path::append(P, <span class="stringliteral">"lib"</span>, <span class="stringliteral">"clang"</span>, <a class="code" href="Version_8h.html#a755da60753a95a776cc6a00f6c570fb7" title="A string that describes the Clang version number, e.g., "1.0".">CLANG_VERSION_STRING</a>);</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>   }</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span> </div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>   <span class="keywordflow">return</span> P.str();</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span> }</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span> </div>
+<div class="line"><a name="l00898"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#aac2cb61f0445758d7d9ac2df25b72ee6">  898</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#aac2cb61f0445758d7d9ac2df25b72ee6">ParseHeaderSearchArgs</a>(<a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a> &Opts, ArgList &Args) {</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a7b2c49429c3e24836a745727bd14dfbb">Sysroot</a> = Args.getLastArgValue(OPT_isysroot, <span class="stringliteral">"/"</span>);</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a0d5fa11981326cf2420f09932cedfb4a" title="Whether header search information should be output as for -v.">Verbose</a> = Args.hasArg(OPT_v);</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a9728d4297286c77fd6d306eda1d3aade" title="Include the compiler builtin includes.">UseBuiltinIncludes</a> = !Args.hasArg(OPT_nobuiltininc);</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#accb2fa9a6d1af19217718168dedde735" title="Include the system standard include search directories.">UseStandardSystemIncludes</a> = !Args.hasArg(OPT_nostdsysteminc);</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#aa50fb306fc3b3afd9772e2769cd798d5" title="Include the system standard C++ library include search directories.">UseStandardCXXIncludes</a> = !Args.hasArg(OPT_nostdincxx);</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_stdlib_EQ))</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a9583c71fac1ed1bc2683a06e7895ee52" title="Use libc++ instead of the default libstdc++.">UseLibcxx</a> = (strcmp(A->getValue(), <span class="stringliteral">"libc++"</span>) == 0);</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#ac3915152e45f4ff70c81bd8f48947006">ResourceDir</a> = Args.getLastArgValue(OPT_resource_dir);</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a8c2a9d11a35b6c25f5700273fc816610" title="The directory used for the module cache.">ModuleCachePath</a> = Args.getLastArgValue(OPT_fmodules_cache_path);</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#af41794d056b511092d3b9016bad29a72" title="Whether we should disable the use of the hash string within the module cache.">DisableModuleHash</a> = Args.hasArg(OPT_fdisable_module_hash);</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>   <span class="comment">// -fmodules implies -fmodule-maps</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a345ccf6903b35488958d5a0cc54862bd" title="Interpret module maps. This option is implied by full modules.">ModuleMaps</a> = Args.hasArg(OPT_fmodule_maps) || Args.hasArg(OPT_fmodules);</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a1ae175391f10d03bf5f0630dfad836a5" title="The interval (in seconds) between pruning operations.">ModuleCachePruneInterval</a> =</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fmodules_prune_interval, 7 * 24 * 60 * 60);</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#ae38bd3c3f7c7d3e696eba59d484f7b32" title="The time (in seconds) after which an unused module file will be considered unused and will...">ModuleCachePruneAfter</a> =</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fmodules_prune_after, 31 * 24 * 60 * 60);</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_fmodules_ignore_macro),</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>                     ie = Args.filtered_end();</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>        it != ie; ++it) {</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>     StringRef MacroDef = (*it)->getValue();</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a2144688937661163b5188a19edd834c6" title="The set of macro names that should be ignored for the purposes of computing the module hash...">ModulesIgnoreMacros</a>.insert(MacroDef.split(<span class="charliteral">'='</span>).first);</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>   }</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>   std::vector<std::string> ModuleMapFiles =</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>       Args.getAllArgValues(OPT_fmodule_map_file);</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>   Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a207b52718d27dc4d4ac3c2e9c6ffcc0c" title="The set of user-provided module-map-files.">ModuleMapFiles</a>.insert(ModuleMapFiles.begin(), ModuleMapFiles.end());</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span> </div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>   <span class="comment">// Add -I..., -F..., and -index-header-map options in order.</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>   <span class="keywordtype">bool</span> IsIndexHeaderMap = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_I, OPT_F, </div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>                                              OPT_index_header_map),</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>        ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>     <span class="keywordflow">if</span> ((*it)->getOption().matches(OPT_index_header_map)) {</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>       <span class="comment">// -index-header-map applies to the next -I or -F.</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>       IsIndexHeaderMap = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>     }</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>         </div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>     <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063a">frontend::IncludeDirGroup</a> Group </div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>       = IsIndexHeaderMap? <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aae74586d678e9b375a845823cc7ec20cc">frontend::IndexHeaderMap</a> : <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aa18303c35ec8f80fe77f3ff0d5e0d123f" title="Paths for '#include <>' added by '-I'.">frontend::Angled</a>;</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>     </div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), Group,</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>                  <span class="comment">/*IsFramework=*/</span> (*it)->getOption().matches(OPT_F), <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>     IsIndexHeaderMap = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>   }</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span> </div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>   <span class="comment">// Add -iprefix/-iwithprefix/-iwithprefixbefore options.</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>   StringRef Prefix = <span class="stringliteral">""</span>; <span class="comment">// FIXME: This isn't the correct default prefix.</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_iprefix, OPT_iwithprefix,</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>                                              OPT_iwithprefixbefore),</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>          ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>     <span class="keywordflow">if</span> (A->getOption().matches(OPT_iprefix))</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>       Prefix = A->getValue();</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (A->getOption().matches(OPT_iwithprefix))</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>       Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>(Prefix.str() + A->getValue(),</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>                    <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aaf30f2edbc8421eedc452b2e20537e96c" title="Like System, but searched after the system directories.">frontend::After</a>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>       Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>(Prefix.str() + A->getValue(),</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>                    <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aa18303c35ec8f80fe77f3ff0d5e0d123f" title="Paths for '#include <>' added by '-I'.">frontend::Angled</a>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>   }</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span> </div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_idirafter),</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>          ie = Args.filtered_end(); it != ie; ++it)</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aaf30f2edbc8421eedc452b2e20537e96c" title="Like System, but searched after the system directories.">frontend::After</a>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_iquote),</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>          ie = Args.filtered_end(); it != ie; ++it)</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aabe59df1a2dfe245f9dcfb2fc5516ad57" title="'#include ""' paths, added by 'gcc -iquote'.">frontend::Quoted</a>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_isystem,</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>          OPT_iwithsysroot), ie = Args.filtered_end(); it != ie; ++it)</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aa7ab4b46f5b11d87091cd7b67402da1ea" title="building frameworks.">frontend::System</a>, <span class="keyword">false</span>,</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>                  !(*it)->getOption().matches(OPT_iwithsysroot));</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_iframework),</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>          ie = Args.filtered_end(); it != ie; ++it)</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aa7ab4b46f5b11d87091cd7b67402da1ea" title="building frameworks.">frontend::System</a>, <span class="keyword">true</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span> </div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>   <span class="comment">// Add the paths for the various language specific isystem flags.</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_c_isystem),</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>        ie = Args.filtered_end(); it != ie; ++it)</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aa25ce4dfbbc76e13bee75700048bd6386" title="Like System, but only used for C.">frontend::CSystem</a>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_cxx_isystem),</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>        ie = Args.filtered_end(); it != ie; ++it)</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aa1818044ff45a4f5799bdea1372c57edd" title="Like System, but only used for C++.">frontend::CXXSystem</a>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_objc_isystem),</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>        ie = Args.filtered_end(); it != ie; ++it)</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aad8ae01da6e74473aec4f3503a293b8f3" title="Like System, but only used for ObjC.">frontend::ObjCSystem</a>, <span class="keyword">false</span>,<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_objcxx_isystem),</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>        ie = Args.filtered_end(); it != ie; ++it)</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*it)->getValue(), <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aaf1e7a3bffd6687e28703345aefc52e99" title="Like System, but only used for ObjC++.">frontend::ObjCXXSystem</a>, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span> </div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>   <span class="comment">// Add the internal paths from a driver that detects standard include paths.</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>   <span class="keywordflow">for</span> (arg_iterator I = Args.filtered_begin(OPT_internal_isystem,</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>                                             OPT_internal_externc_isystem),</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>                     E = Args.filtered_end();</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>        I != E; ++I) {</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>     <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063a">frontend::IncludeDirGroup</a> Group = <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aa7ab4b46f5b11d87091cd7b67402da1ea" title="building frameworks.">frontend::System</a>;</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>     <span class="keywordflow">if</span> ((*I)->getOption().matches(OPT_internal_externc_isystem))</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>       Group = <a class="code" href="namespaceclang_1_1frontend.html#add3c3955b811cfaec91d27507d77063aac3871ca76b28c20ad0fed2b450a10025">frontend::ExternCSystem</a>;</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a18bc3848e478f8a45338dfaa5285f0af" title="AddPath - Add the Path path to the specified Group list.">AddPath</a>((*I)->getValue(), Group, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>   }</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span> </div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>   <span class="comment">// Add the path prefixes which are implicitly treated as being system headers.</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>   <span class="keywordflow">for</span> (arg_iterator I = Args.filtered_begin(OPT_isystem_prefix,</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>                                             OPT_ino_system_prefix),</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>                     E = Args.filtered_end();</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>        I != E; ++I)</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>     Opts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a478b5321b95fc131b2cb15cbf867f68b">AddSystemHeaderPrefix</a>((*I)->getValue(),</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>                                (*I)->getOption().matches(OPT_isystem_prefix));</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> }</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> </div>
+<div class="line"><a name="l01009"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a6f821e99ab43af6cb71c8108581a79c1"> 1009</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInvocation.html#a6f821e99ab43af6cb71c8108581a79c1" title="Set language defaults for the given input language and language standard in the given LangOptions obj...">CompilerInvocation::setLangDefaults</a>(<a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &Opts, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> IK,</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>                                          <a class="code" href="structclang_1_1LangStandard.html#a8ad52b8124df039d7e4919b5cf27bc25">LangStandard::Kind</a> LangStd) {</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>   <span class="comment">// Set some properties which depend solely on the input kind; it would be nice</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>   <span class="comment">// to move these to the language standard, and have the driver resolve the</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>   <span class="comment">// input kind + language standard.</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>   <span class="keywordflow">if</span> (IK == <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4018ed3c986549a1d96905a4708f715f">IK_Asm</a>) {</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>     Opts.AsmPreprocessor = 1;</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IK == <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4a4054c30293576e9a09ce76410db6db">IK_ObjC</a> ||</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>              IK == <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a23bf74f481a55712ed26198171d8a3dd">IK_ObjCXX</a> ||</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>              IK == <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ac573369146cd7d8456ce0356fff6a3d5">IK_PreprocessedObjC</a> ||</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>              IK == <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a729d086cdf877e52803b73ab3be819a7">IK_PreprocessedObjCXX</a>) {</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>     Opts.ObjC1 = Opts.ObjC2 = 1;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>   }</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> </div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>   <span class="keywordflow">if</span> (LangStd == LangStandard::lang_unspecified) {</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>     <span class="comment">// Based on the base language, pick one.</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>     <span class="keywordflow">switch</span> (IK) {</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ad73666978b85ba86ad1c34344e8d22ac">IK_None</a>:</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6e091f96e7bc6407659089b0e0fa0b62">IK_AST</a>:</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10af41e61b39aea3f735b903fdf7cd5049c">IK_LLVM_IR</a>:</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>       llvm_unreachable(<span class="stringliteral">"Invalid input kind!"</span>);</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6dfa99f06df95954fc34cd10518b75d8">IK_OpenCL</a>:</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>       LangStd = LangStandard::lang_opencl;</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a2f35df33303fed1d79a81ce9bc7f4077">IK_CUDA</a>:</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>       LangStd = LangStandard::lang_cuda;</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4018ed3c986549a1d96905a4708f715f">IK_Asm</a>:</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4c84b88fbd27cf2e1ac5c465a32a511a">IK_C</a>:</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a3c22efd2370bb08a4f0067ec6d6b00aa">IK_PreprocessedC</a>:</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4a4054c30293576e9a09ce76410db6db">IK_ObjC</a>:</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ac573369146cd7d8456ce0356fff6a3d5">IK_PreprocessedObjC</a>:</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>       LangStd = LangStandard::lang_gnu99;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10af9da9d80e200fbbe7f087765f9972c1f">IK_CXX</a>:</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a74ded3bb1ede37c40f151dd5fb2e7cb9">IK_PreprocessedCXX</a>:</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a23bf74f481a55712ed26198171d8a3dd">IK_ObjCXX</a>:</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a729d086cdf877e52803b73ab3be819a7">IK_PreprocessedObjCXX</a>:</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>       LangStd = LangStandard::lang_gnucxx98;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>     }</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>   }</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> </div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>   <span class="keyword">const</span> <a class="code" href="structclang_1_1LangStandard.html">LangStandard</a> &Std = <a class="code" href="structclang_1_1LangStandard.html#abf998f95d5b8a3a8b8c9558a36c1b7c4">LangStandard::getLangStandardForKind</a>(LangStd);</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>   Opts.LineComment = Std.<a class="code" href="structclang_1_1LangStandard.html#a8f829c543af042ac9929b5c8a215322a" title="Language supports '//' comments.">hasLineComments</a>();</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>   Opts.C99 = Std.<a class="code" href="structclang_1_1LangStandard.html#a865e55dbd820425d67be5fe4f40bce30" title="isC99 - Language is a superset of C99.">isC99</a>();</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>   Opts.C11 = Std.<a class="code" href="structclang_1_1LangStandard.html#a6088d274a853100a63cd9fa68fbd621c" title="isC11 - Language is a superset of C11.">isC11</a>();</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>   Opts.CPlusPlus = Std.<a class="code" href="structclang_1_1LangStandard.html#a9271cf902f19a2d2faad083d21e369a1" title="isCPlusPlus - Language is a C++ variant.">isCPlusPlus</a>();</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>   Opts.CPlusPlus11 = Std.<a class="code" href="structclang_1_1LangStandard.html#a406c72432c632d3b2c9280af6b89e91a" title="isCPlusPlus11 - Language is a C++0x variant.">isCPlusPlus11</a>();</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>   Opts.CPlusPlus1y = Std.<a class="code" href="structclang_1_1LangStandard.html#a526348bde3ee3162ba11dc81a518ccb3" title="isCPlusPlus1y - Language is a C++1y variant.">isCPlusPlus1y</a>();</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>   Opts.Digraphs = Std.<a class="code" href="structclang_1_1LangStandard.html#a77e76afe212c4f97bd07e72cfd269581" title="hasDigraphs - Language supports digraphs.">hasDigraphs</a>();</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>   Opts.GNUMode = Std.<a class="code" href="structclang_1_1LangStandard.html#a2facf77f27b638326cb53f1e251fb0dc" title="isGNUMode - Language includes GNU extensions.">isGNUMode</a>();</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>   Opts.GNUInline = !Std.<a class="code" href="structclang_1_1LangStandard.html#a865e55dbd820425d67be5fe4f40bce30" title="isC99 - Language is a superset of C99.">isC99</a>();</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>   Opts.HexFloats = Std.<a class="code" href="structclang_1_1LangStandard.html#a436cbcd709f05c30b3c2820ca081c73d" title="hasHexFloats - Language supports hexadecimal float constants.">hasHexFloats</a>();</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>   Opts.ImplicitInt = Std.<a class="code" href="structclang_1_1LangStandard.html#ab7dd78f7b750895be4c9ea195181e7c1" title="hasImplicitInt - Language allows variables to be typed as int implicitly.">hasImplicitInt</a>();</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> </div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>   <span class="comment">// Set OpenCL Version.</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>   <span class="keywordflow">if</span> (LangStd == LangStandard::lang_opencl) {</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>     Opts.OpenCL = 1;</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>     Opts.OpenCLVersion = 100;</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>   }</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LangStd == LangStandard::lang_opencl11) {</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>       Opts.OpenCL = 1;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>       Opts.OpenCLVersion = 110;</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>   }</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LangStd == LangStandard::lang_opencl12) {</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>     Opts.OpenCL = 1;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>     Opts.OpenCLVersion = 120;</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>   }</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>   </div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>   <span class="comment">// OpenCL has some additional defaults.</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>   <span class="keywordflow">if</span> (Opts.OpenCL) {</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>     Opts.AltiVec = 0;</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>     Opts.CXXOperatorNames = 1;</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>     Opts.LaxVectorConversions = 0;</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>     Opts.DefaultFPContract = 1;</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>     Opts.NativeHalfType = 1;</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>   }</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> </div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>   <span class="keywordflow">if</span> (LangStd == LangStandard::lang_cuda)</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>     Opts.CUDA = 1;</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> </div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>   <span class="comment">// OpenCL and C++ both have bool, true, false keywords.</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>   Opts.Bool = Opts.OpenCL || Opts.CPlusPlus;</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>   <span class="comment">// C++ has wchar_t keyword.</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>   Opts.WChar = Opts.CPlusPlus;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> </div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>   Opts.GNUKeywords = Opts.GNUMode;</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>   Opts.CXXOperatorNames = Opts.CPlusPlus;</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> </div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>   <span class="comment">// Mimicing gcc's behavior, trigraphs are only enabled if -trigraphs</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>   <span class="comment">// is specified, or -std is set to a conforming mode.</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>   Opts.Trigraphs = !Opts.GNUMode;</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> </div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>   Opts.DollarIdents = !Opts.AsmPreprocessor;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> </div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>   <span class="comment">// C++1y onwards has sized global deallocation functions.</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>   Opts.SizedDeallocation = Opts.CPlusPlus1y;</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> }</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment"></span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">/// Attempt to parse a visibility value out of the given argument.</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#aeaea1456d806e14f7ec98d570416e748"> 1111</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a> <a class="code" href="CompilerInvocation_8cpp.html#aeaea1456d806e14f7ec98d570416e748" title="Attempt to parse a visibility value out of the given argument.">parseVisibility</a>(Arg *arg, ArgList &args,</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>                                   <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &diags) {</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>   StringRef value = arg->getValue();</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>   <span class="keywordflow">if</span> (value == <span class="stringliteral">"default"</span>) {</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102af3e12fac676a05b300d4bbb673d8fa5b">DefaultVisibility</a>;</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (value == <span class="stringliteral">"hidden"</span>) {</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102a6dddfc0d585a6867a79d44a43ad55324">HiddenVisibility</a>;</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (value == <span class="stringliteral">"protected"</span>) {</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>     <span class="comment">// FIXME: diagnose if target does not support protected visibility</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102ab31daf785b56c49153fae9edc3a54120">ProtectedVisibility</a>;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>   }</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> </div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>   diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>     << arg->getAsString(args) << value;</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>   <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102af3e12fac676a05b300d4bbb673d8fa5b">DefaultVisibility</a>;</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> }</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> </div>
+<div class="line"><a name="l01128"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a936f51ef21450ad1e5d3f3cc20c84538"> 1128</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#a936f51ef21450ad1e5d3f3cc20c84538">ParseLangArgs</a>(<a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &Opts, ArgList &Args, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> IK,</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>                           <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags) {</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>   <span class="comment">// FIXME: Cleanup per-file based stuff.</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>   <a class="code" href="structclang_1_1LangStandard.html#a8ad52b8124df039d7e4919b5cf27bc25">LangStandard::Kind</a> LangStd = LangStandard::lang_unspecified;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_std_EQ)) {</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>     LangStd = llvm::StringSwitch<LangStandard::Kind>(A->getValue())</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> #define <a class="code" href="LangStandard_8h.html#a59e4db576a198860be3c72461dff7232">LANGSTANDARD</a>(<span class="keywordtype">id</span>, name, desc, features) \</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>       .Case(name, LangStandard::lang_##<span class="keywordtype">id</span>)</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="preprocessor">#include "clang/Frontend/LangStandards.def"</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>       .Default(LangStandard::lang_unspecified);</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>     <span class="keywordflow">if</span> (LangStd == LangStandard::lang_unspecified)</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>         << A->getAsString(Args) << A->getValue();</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>       <span class="comment">// Valid standard, check to make sure language and standard are compatable.    </span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>       <span class="keyword">const</span> <a class="code" href="structclang_1_1LangStandard.html">LangStandard</a> &Std = <a class="code" href="structclang_1_1LangStandard.html#abf998f95d5b8a3a8b8c9558a36c1b7c4">LangStandard::getLangStandardForKind</a>(LangStd);</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>       <span class="keywordflow">switch</span> (IK) {</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4c84b88fbd27cf2e1ac5c465a32a511a">IK_C</a>:</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4a4054c30293576e9a09ce76410db6db">IK_ObjC</a>:</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a3c22efd2370bb08a4f0067ec6d6b00aa">IK_PreprocessedC</a>:</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10ac573369146cd7d8456ce0356fff6a3d5">IK_PreprocessedObjC</a>:</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>         <span class="keywordflow">if</span> (!(Std.<a class="code" href="structclang_1_1LangStandard.html#a194cdf4710d5cadee1071a218e876347" title="isC89 - Language is a superset of C89.">isC89</a>() || Std.<a class="code" href="structclang_1_1LangStandard.html#a865e55dbd820425d67be5fe4f40bce30" title="isC99 - Language is a superset of C99.">isC99</a>()))</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>           Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_argument_not_allowed_with)</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>             << A->getAsString(Args) << <span class="stringliteral">"C/ObjC"</span>;</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10af9da9d80e200fbbe7f087765f9972c1f">IK_CXX</a>:</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a23bf74f481a55712ed26198171d8a3dd">IK_ObjCXX</a>:</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a74ded3bb1ede37c40f151dd5fb2e7cb9">IK_PreprocessedCXX</a>:</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a729d086cdf877e52803b73ab3be819a7">IK_PreprocessedObjCXX</a>:</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>         <span class="keywordflow">if</span> (!Std.<a class="code" href="structclang_1_1LangStandard.html#a9271cf902f19a2d2faad083d21e369a1" title="isCPlusPlus - Language is a C++ variant.">isCPlusPlus</a>())</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>           Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_argument_not_allowed_with)</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>             << A->getAsString(Args) << <span class="stringliteral">"C++/ObjC++"</span>;</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6dfa99f06df95954fc34cd10518b75d8">IK_OpenCL</a>:</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>         <span class="keywordflow">if</span> (!Std.<a class="code" href="structclang_1_1LangStandard.html#a865e55dbd820425d67be5fe4f40bce30" title="isC99 - Language is a superset of C99.">isC99</a>())</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>           Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_argument_not_allowed_with)</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>             << A->getAsString(Args) << <span class="stringliteral">"OpenCL"</span>;</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a2f35df33303fed1d79a81ce9bc7f4077">IK_CUDA</a>:</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>         <span class="keywordflow">if</span> (!Std.<a class="code" href="structclang_1_1LangStandard.html#a9271cf902f19a2d2faad083d21e369a1" title="isCPlusPlus - Language is a C++ variant.">isCPlusPlus</a>())</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>           Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_argument_not_allowed_with)</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>             << A->getAsString(Args) << <span class="stringliteral">"CUDA"</span>;</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>       <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>       }</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>     }</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>   }</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>   <span class="comment">// -cl-std only applies for OpenCL language standards.</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>   <span class="comment">// Override the -std option in this case.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_cl_std_EQ)) {</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>     <a class="code" href="structclang_1_1LangStandard.html#a8ad52b8124df039d7e4919b5cf27bc25">LangStandard::Kind</a> OpenCLLangStd</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>     = llvm::StringSwitch<LangStandard::Kind>(A->getValue())</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>     .Case(<span class="stringliteral">"CL"</span>, LangStandard::lang_opencl)</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>     .Case(<span class="stringliteral">"CL1.1"</span>, LangStandard::lang_opencl11)</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>     .Case(<span class="stringliteral">"CL1.2"</span>, LangStandard::lang_opencl12)</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>     .Default(LangStandard::lang_unspecified);</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>     </div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>     <span class="keywordflow">if</span> (OpenCLLangStd == LangStandard::lang_unspecified) {</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>       << A->getAsString(Args) << A->getValue();</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>     }</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>       LangStd = OpenCLLangStd;</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>   }</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>   </div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>   <a class="code" href="classclang_1_1CompilerInvocation.html#a6f821e99ab43af6cb71c8108581a79c1" title="Set language defaults for the given input language and language standard in the given LangOptions obj...">CompilerInvocation::setLangDefaults</a>(Opts, IK, LangStd);</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> </div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>   <span class="comment">// We abuse '-f[no-]gnu-keywords' to force overriding all GNU-extension</span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>   <span class="comment">// keywords. This behavior is provided by GCC's poorly named '-fasm' flag,</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>   <span class="comment">// while a subset (the non-C++ GNU keywords) is provided by GCC's</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>   <span class="comment">// '-fgnu-keywords'. Clang conflates the two for simplicity under the single</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>   <span class="comment">// name, as it doesn't seem a useful distinction.</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>   Opts.GNUKeywords = Args.hasFlag(OPT_fgnu_keywords, OPT_fno_gnu_keywords,</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>                                   Opts.GNUKeywords);</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> </div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_fno_operator_names))</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>     Opts.CXXOperatorNames = 0;</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> </div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Opts.ObjC1) {</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>     <span class="keywordflow">if</span> (Arg *arg = Args.getLastArg(OPT_fobjc_runtime_EQ)) {</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>       StringRef value = arg->getValue();</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>       <span class="keywordflow">if</span> (Opts.<a class="code" href="classclang_1_1LangOptions.html#a34a8b84f730051971c84c36daa84dda7">ObjCRuntime</a>.<a class="code" href="classclang_1_1ObjCRuntime.html#a979b63d225442eac1987ebdff440dded" title="Try to parse an Objective-C runtime specification from the given string.">tryParse</a>(value))</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>         Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_unknown_objc_runtime) << value;</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>     }</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> </div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>     <span class="keywordflow">if</span> (Args.hasArg(OPT_fobjc_gc_only))</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>       Opts.setGC(<a class="code" href="classclang_1_1LangOptions.html#a01202ff51e7f9dbf39a447360d0a3a84a14f316080dbd204ff0c18a43a3e46869">LangOptions::GCOnly</a>);</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(OPT_fobjc_gc))</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>       Opts.setGC(<a class="code" href="classclang_1_1LangOptions.html#a01202ff51e7f9dbf39a447360d0a3a84a08b050fca625336789ab78cdc876ae17">LangOptions::HybridGC</a>);</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(OPT_fobjc_arc)) {</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>       Opts.ObjCAutoRefCount = 1;</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>       <span class="keywordflow">if</span> (!Opts.<a class="code" href="classclang_1_1LangOptions.html#a34a8b84f730051971c84c36daa84dda7">ObjCRuntime</a>.<a class="code" href="classclang_1_1ObjCRuntime.html#a027124d0981c95233b1ea0e8d736ebcd" title="Does this runtime allow ARC at all?">allowsARC</a>())</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>         Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_arc_unsupported_on_runtime);</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> </div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>       <span class="comment">// Only set ObjCARCWeak if ARC is enabled.</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>       <span class="keywordflow">if</span> (Args.hasArg(OPT_fobjc_runtime_has_weak))</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>         Opts.ObjCARCWeak = 1;</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>         Opts.ObjCARCWeak = Opts.<a class="code" href="classclang_1_1LangOptions.html#a34a8b84f730051971c84c36daa84dda7">ObjCRuntime</a>.<a class="code" href="classclang_1_1ObjCRuntime.html#a63505e63acf8dd30b8e61bd8ec59c9d5" title="Does this runtime allow the use of __weak?">allowsWeak</a>();</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>     }</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> </div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>     <span class="keywordflow">if</span> (Args.hasArg(OPT_fno_objc_infer_related_result_type))</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>       Opts.ObjCInferRelatedResultType = 0;</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>     </div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>     <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_fobjc_subscripting_legacy_runtime))</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>       Opts.ObjCSubscriptingLegacyRuntime =</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>         (Opts.<a class="code" href="classclang_1_1LangOptions.html#a34a8b84f730051971c84c36daa84dda7">ObjCRuntime</a>.<a class="code" href="classclang_1_1ObjCRuntime.html#a46efae9a73b620f46708e58fa01ffce5">getKind</a>() == <a class="code" href="classclang_1_1ObjCRuntime.html#af19fe070a7073df4ecc666b44137c4e5a474ce19ff8ba88056218287c3366fcc6">ObjCRuntime::FragileMacOSX</a>);</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>   }</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>     </div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_fgnu89_inline))</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>     Opts.GNUInline = 1;</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> </div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_fapple_kext)) {</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>     <span class="keywordflow">if</span> (!Opts.CPlusPlus)</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::warn_c_kext);</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>       Opts.AppleKext = 1;</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>   }</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> </div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_print_ivar_layout))</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>     Opts.ObjCGCBitmapPrint = 1;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_fno_constant_cfstrings))</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>     Opts.NoConstantCFStrings = 1;</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> </div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_faltivec))</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>     Opts.AltiVec = 1;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_pthread))</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>     Opts.POSIXThreads = 1;</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> </div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>   <span class="comment">// The value-visibility mode defaults to "default".</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Arg *visOpt = Args.getLastArg(OPT_fvisibility)) {</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>     Opts.setValueVisibilityMode(<a class="code" href="CompilerInvocation_8cpp.html#aeaea1456d806e14f7ec98d570416e748" title="Attempt to parse a visibility value out of the given argument.">parseVisibility</a>(visOpt, Args, Diags));</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>     Opts.setValueVisibilityMode(<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102af3e12fac676a05b300d4bbb673d8fa5b">DefaultVisibility</a>);</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>   }</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> </div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>   <span class="comment">// The type-visibility mode defaults to the value-visibility mode.</span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>   <span class="keywordflow">if</span> (Arg *typeVisOpt = Args.getLastArg(OPT_ftype_visibility)) {</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>     Opts.setTypeVisibilityMode(<a class="code" href="CompilerInvocation_8cpp.html#aeaea1456d806e14f7ec98d570416e748" title="Attempt to parse a visibility value out of the given argument.">parseVisibility</a>(typeVisOpt, Args, Diags));</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>     Opts.setTypeVisibilityMode(Opts.getValueVisibilityMode());</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>   }</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> </div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_fvisibility_inlines_hidden))</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>     Opts.InlineVisibilityHidden = 1;</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> </div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_ftrapv)) {</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>     Opts.setSignedOverflowBehavior(<a class="code" href="classclang_1_1LangOptions.html#aed122a38a369a1628fc8b338b399836fa5b02f5b72966fb28394043b2a4a53eac">LangOptions::SOB_Trapping</a>);</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>     <span class="comment">// Set the handler, if one is specified.</span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>     Opts.<a class="code" href="classclang_1_1LangOptions.html#a9aa9b7e403a0c73ac671eda601ed2045" title="The name of the handler function to be called when -ftrapv is specified.">OverflowHandler</a> =</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>         Args.getLastArgValue(OPT_ftrapv_handler);</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>   }</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(OPT_fwrapv))</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>     Opts.setSignedOverflowBehavior(<a class="code" href="classclang_1_1LangOptions.html#aed122a38a369a1628fc8b338b399836faaceab8eb65fa9d8a4c0d22f872a709c8">LangOptions::SOB_Defined</a>);</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> </div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_trigraphs))</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>     Opts.Trigraphs = 1;</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> </div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>   Opts.DollarIdents = Args.hasFlag(OPT_fdollars_in_identifiers,</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>                                    OPT_fno_dollars_in_identifiers,</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>                                    Opts.DollarIdents);</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>   Opts.PascalStrings = Args.hasArg(OPT_fpascal_strings);</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>   Opts.MicrosoftExt</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>     = Args.hasArg(OPT_fms_extensions) || Args.hasArg(OPT_fms_compatibility);</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>   Opts.MicrosoftMode = Args.hasArg(OPT_fms_compatibility);</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>   Opts.AsmBlocks = Args.hasArg(OPT_fasm_blocks) || Opts.MicrosoftExt;</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>   Opts.MSCVersion = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fmsc_version, 0, Diags);</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>   Opts.Borland = Args.hasArg(OPT_fborland_extensions);</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>   Opts.WritableStrings = Args.hasArg(OPT_fwritable_strings);</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>   Opts.ConstStrings = Args.hasFlag(OPT_fconst_strings, OPT_fno_const_strings,</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>                                    Opts.ConstStrings);</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_fno_lax_vector_conversions))</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>     Opts.LaxVectorConversions = 0;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>   <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (Args.hasArg(OPT_fno_threadsafe_statics))</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>     Opts.ThreadsafeStatics = 0;</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>   Opts.Exceptions = Args.hasArg(OPT_fexceptions);</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>   Opts.ObjCExceptions = Args.hasArg(OPT_fobjc_exceptions);</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>   Opts.CXXExceptions = Args.hasArg(OPT_fcxx_exceptions);</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>   Opts.SjLjExceptions = Args.hasArg(OPT_fsjlj_exceptions);</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>   Opts.TraditionalCPP = Args.hasArg(OPT_traditional_cpp);</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> </div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>   Opts.RTTI = !Args.hasArg(OPT_fno_rtti);</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>   Opts.Blocks = Args.hasArg(OPT_fblocks);</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>   Opts.BlocksRuntimeOptional = Args.hasArg(OPT_fblocks_runtime_optional);</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>   Opts.Modules = Args.hasArg(OPT_fmodules);</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>   Opts.ModulesDeclUse = Args.hasArg(OPT_fmodules_decluse);</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>   Opts.CharIsSigned = Opts.OpenCL || !Args.hasArg(OPT_fno_signed_char);</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>   Opts.WChar = Opts.CPlusPlus && !Args.hasArg(OPT_fno_wchar);</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>   Opts.ShortWChar = Args.hasArg(OPT_fshort_wchar);</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>   Opts.ShortEnums = Args.hasArg(OPT_fshort_enums);</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>   Opts.Freestanding = Args.hasArg(OPT_ffreestanding);</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>   Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding;</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>   Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin);</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>   Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new);</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>   Opts.SizedDeallocation |= Args.hasArg(OPT_fsized_deallocation);</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>   Opts.HeinousExtensions = Args.hasArg(OPT_fheinous_gnu_extensions);</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>   Opts.AccessControl = !Args.hasArg(OPT_fno_access_control);</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>   Opts.ElideConstructors = !Args.hasArg(OPT_fno_elide_constructors);</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>   Opts.MathErrno = !Opts.OpenCL && Args.hasArg(OPT_fmath_errno);</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>   Opts.InstantiationDepth =</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_ftemplate_depth, 256, Diags);</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>   Opts.ArrowDepth =</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_foperator_arrow_depth, 256, Diags);</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>   Opts.ConstexprCallDepth =</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fconstexpr_depth, 512, Diags);</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>   Opts.ConstexprStepLimit =</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fconstexpr_steps, 1048576, Diags);</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>   Opts.BracketDepth = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fbracket_depth, 256, Diags);</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>   Opts.DelayedTemplateParsing = Args.hasArg(OPT_fdelayed_template_parsing);</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>   Opts.NumLargeByValueCopy =</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>       <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_Wlarge_by_value_copy_EQ, 0, Diags);</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>   Opts.MSBitfields = Args.hasArg(OPT_mms_bitfields);</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>   Opts.<a class="code" href="classclang_1_1LangOptions.html#adeb0f4f5ffe2ee31b40446a9cb7ebaab">ObjCConstantStringClass</a> =</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>     Args.getLastArgValue(OPT_fconstant_string_class);</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>   Opts.ObjCDefaultSynthProperties =</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>     !Args.hasArg(OPT_disable_objc_default_synthesize_properties);</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>   Opts.EncodeExtendedBlockSig =</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>     Args.hasArg(OPT_fencode_extended_block_signature);</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>   Opts.EmitAllDecls = Args.hasArg(OPT_femit_all_decls);</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>   Opts.PackStruct = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_fpack_struct_EQ, 0, Diags);</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>   Opts.PICLevel = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_pic_level, 0, Diags);</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>   Opts.PIELevel = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_pie_level, 0, Diags);</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>   Opts.Static = Args.hasArg(OPT_static_define);</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>   Opts.DumpRecordLayoutsSimple = Args.hasArg(OPT_fdump_record_layouts_simple);</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>   Opts.DumpRecordLayouts = Opts.DumpRecordLayoutsSimple </div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>                         || Args.hasArg(OPT_fdump_record_layouts);</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>   Opts.DumpVTableLayouts = Args.hasArg(OPT_fdump_vtable_layouts);</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>   Opts.SpellChecking = !Args.hasArg(OPT_fno_spell_checking);</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>   Opts.NoBitFieldTypeAlign = Args.hasArg(OPT_fno_bitfield_type_align);</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>   Opts.SinglePrecisionConstants = Args.hasArg(OPT_cl_single_precision_constant);</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>   Opts.FastRelaxedMath = Args.hasArg(OPT_cl_fast_relaxed_math);</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>   Opts.MRTD = Args.hasArg(OPT_mrtd);</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>   Opts.HexagonQdsp6Compat = Args.hasArg(OPT_mqdsp6_compat);</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>   Opts.FakeAddressSpaceMap = Args.hasArg(OPT_ffake_address_space_map);</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>   Opts.ParseUnknownAnytype = Args.hasArg(OPT_funknown_anytype);</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>   Opts.DebuggerSupport = Args.hasArg(OPT_fdebugger_support);</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>   Opts.DebuggerCastResultToId = Args.hasArg(OPT_fdebugger_cast_result_to_id);</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>   Opts.DebuggerObjCLiteral = Args.hasArg(OPT_fdebugger_objc_literal);</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>   Opts.ApplePragmaPack = Args.hasArg(OPT_fapple_pragma_pack);</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>   Opts.<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a> = Args.getLastArgValue(OPT_fmodule_name);</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> </div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_faddress_space_map_mangling_EQ)) {</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>     <span class="keywordflow">switch</span> (llvm::StringSwitch<unsigned>(A->getValue())</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>       .Case(<span class="stringliteral">"target"</span>, <a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5ae33d275d7a70b3fd19036adf9c5c678f">LangOptions::ASMM_Target</a>)</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>       .Case(<span class="stringliteral">"no"</span>, <a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5ad546d50a887d902d6a7a36377707ec00">LangOptions::ASMM_Off</a>)</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>       .Case(<span class="stringliteral">"yes"</span>, <a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5a0db2ea1b5b36e28abfbab37666dbe133">LangOptions::ASMM_On</a>)</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>       .Default(255)) {</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value) </div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>         << <span class="stringliteral">"-faddress-space-map-mangling="</span> << A->getValue();</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5ae33d275d7a70b3fd19036adf9c5c678f">LangOptions::ASMM_Target</a>:</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>       Opts.setAddressSpaceMapMangling(<a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5ae33d275d7a70b3fd19036adf9c5c678f">LangOptions::ASMM_Target</a>);</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5a0db2ea1b5b36e28abfbab37666dbe133">LangOptions::ASMM_On</a>:</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>       Opts.setAddressSpaceMapMangling(<a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5a0db2ea1b5b36e28abfbab37666dbe133">LangOptions::ASMM_On</a>);</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5ad546d50a887d902d6a7a36377707ec00">LangOptions::ASMM_Off</a>:</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>       Opts.setAddressSpaceMapMangling(<a class="code" href="classclang_1_1LangOptions.html#a8171c3f9a4c4739d9fb3201badcb41a5ad546d50a887d902d6a7a36377707ec00">LangOptions::ASMM_Off</a>);</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>     }</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>   }</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> </div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>   <span class="comment">// Check if -fopenmp is specified.</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>   Opts.OpenMP = Args.hasArg(OPT_fopenmp);</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> </div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>   <span class="comment">// Record whether the __DEPRECATED define was requested.</span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>   Opts.Deprecated = Args.hasFlag(OPT_fdeprecated_macro,</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>                                  OPT_fno_deprecated_macro,</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>                                  Opts.Deprecated);</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> </div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>   <span class="comment">// FIXME: Eliminate this dependency.</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>   <span class="keywordtype">unsigned</span> Opt = <a class="code" href="CompilerInvocation_8cpp.html#ae17897a14bcc410df4c75242f9dc35b0">getOptimizationLevel</a>(Args, IK, Diags),</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>        OptSize = <a class="code" href="CompilerInvocation_8cpp.html#a1ded6d1f9433b10751bd1629e652f9d5">getOptimizationLevelSize</a>(Args);</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>   Opts.Optimize = Opt != 0;</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>   Opts.OptimizeSize = OptSize != 0;</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>   <span class="comment">// This is the __NO_INLINE__ define, which just depends on things like the</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>   <span class="comment">// optimization level and -fno-inline, not actually whether the backend has</span></div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>   <span class="comment">// inlining enabled.</span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>   Opts.NoInlineDefine = !Opt || Args.hasArg(OPT_fno_inline);</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> </div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>   Opts.FastMath = Args.hasArg(OPT_ffast_math);</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>   Opts.FiniteMathOnly = Args.hasArg(OPT_ffinite_math_only);</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> </div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>   Opts.RetainCommentsFromSystemHeaders =</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>       Args.hasArg(OPT_fretain_comments_from_system_headers);</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> </div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>   <span class="keywordtype">unsigned</span> SSP = <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(Args, OPT_stack_protector, 0, Diags);</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>   <span class="keywordflow">switch</span> (SSP) {</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>       << Args.getLastArg(OPT_stack_protector)->getAsString(Args) << SSP;</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>   <span class="keywordflow">case</span> 0: Opts.setStackProtector(<a class="code" href="classclang_1_1LangOptions.html#a5882d31d12334fc5dd06985e825ca323">LangOptions::SSPOff</a>); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>   <span class="keywordflow">case</span> 1: Opts.setStackProtector(<a class="code" href="classclang_1_1LangOptions.html#ac889bd73efcb3d30e8670ab400d94f83abde3bf1143bf193f4a147b378814f025">LangOptions::SSPOn</a>);  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>   <span class="keywordflow">case</span> 2: Opts.setStackProtector(<a class="code" href="classclang_1_1LangOptions.html#ac889bd73efcb3d30e8670ab400d94f83a05919079389855372132b51952b54fe3">LangOptions::SSPReq</a>); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>   }</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> </div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>   <span class="comment">// Parse -fsanitize= arguments.</span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>   std::vector<std::string> Sanitizers = Args.getAllArgValues(OPT_fsanitize_EQ);</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Sanitizers.size(); I != N; ++I) {</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>     <span class="comment">// Since the Opts.Sanitize* values are bitfields, it's a little tricky to</span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>     <span class="comment">// efficiently map string values to them. Perform the mapping indirectly:</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>     <span class="comment">// convert strings to enumerated values, then switch over the enum to set</span></div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>     <span class="comment">// the right bitfield value.</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>     <span class="keyword">enum</span> Sanitizer {</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> <span class="preprocessor">#define SANITIZER(NAME, ID) \</span></div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> <span class="preprocessor">      ID,</span></div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="preprocessor"></span><span class="preprocessor">#include "clang/Basic/Sanitizers.def"</span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>       <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880a4e81c184ac3ad48a389cd4454c4a05bb">Unknown</a></div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>     };</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>     <span class="keywordflow">switch</span> (llvm::StringSwitch<unsigned>(Sanitizers[I])</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="preprocessor">#define SANITIZER(NAME, ID) \</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="preprocessor">              .Case(NAME, ID)</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <span class="preprocessor"></span><span class="preprocessor">#include "clang/Basic/Sanitizers.def"</span></div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>               .Default(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880a4e81c184ac3ad48a389cd4454c4a05bb">Unknown</a>)) {</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="preprocessor">#define SANITIZER(NAME, ID) \</span></div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="preprocessor">    case ID: \</span></div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="preprocessor">      Opts.Sanitize.ID = true; \</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="preprocessor">      break;</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="preprocessor"></span><span class="preprocessor">#include "clang/Basic/Sanitizers.def"</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> </div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>     <span class="keywordflow">case</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880a4e81c184ac3ad48a389cd4454c4a05bb">Unknown</a>:</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value)</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>         << <span class="stringliteral">"-fsanitize="</span> << Sanitizers[I];</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>     }</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>   }</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> }</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> </div>
+<div class="line"><a name="l01462"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a179b9fde7cfe09851bc6696a43048565"> 1462</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#a179b9fde7cfe09851bc6696a43048565">ParsePreprocessorArgs</a>(<a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> &Opts, ArgList &Args,</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>                                   <a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> &FileMgr,</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>                                   <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags) {</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ab62f6211f45e53fb6a45ad84d2a87657" title="The implicit PCH included at the start of the translation unit, or empty.">ImplicitPCHInclude</a> = Args.getLastArgValue(OPT_include_pch);</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a0c36fcce055469acd070d560240f6179">ImplicitPTHInclude</a> = Args.getLastArgValue(OPT_include_pth);</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_token_cache))</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>       Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ac38e47eee0f784a0d059cffb5d5e568d" title="If given, a PTH cache file to use for speeding up header parsing.">TokenCache</a> = A->getValue();</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>     Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ac38e47eee0f784a0d059cffb5d5e568d" title="If given, a PTH cache file to use for speeding up header parsing.">TokenCache</a> = Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a0c36fcce055469acd070d560240f6179">ImplicitPTHInclude</a>;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a6bf6504a1e99a33278fc9918525482be" title="Initialize the preprocessor with the compiler and target specific predefines.">UsePredefines</a> = !Args.hasArg(OPT_undef);</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#af9425f8ba984d1f17bbf5417bb45fb94" title="Whether we should maintain a detailed record of all macro definitions and expansions.">DetailedRecord</a> = Args.hasArg(OPT_detailed_preprocessing_record);</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#afbbf74f590f04a8fb30bb1c63547d828" title="When true, disables most of the normal validation performed on precompiled headers.">DisablePCHValidation</a> = Args.hasArg(OPT_fno_validate_pch);</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> </div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#acadb5dbd310ada9e432ad75bd121ee57" title="Dump declarations that are deserialized from PCH, for testing.">DumpDeserializedPCHDecls</a> = Args.hasArg(OPT_dump_deserialized_pch_decls);</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_error_on_deserialized_pch_decl),</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>          ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>     Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a7c59d36494a0b72f4a87e75f05b25d14" title="This is a set of names for decls that we do not want to be deserialized, and we emit an error if they...">DeserializedPCHDeclsToErrorOn</a>.insert(A->getValue());</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>   }</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> </div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(OPT_preamble_bytes_EQ)) {</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>     StringRef <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>(A->getValue());</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>     <span class="keywordtype">size_t</span> <a class="code" href="namespaceclang_1_1prec.html#a9bfbe31f4770359ea44ad42e7c7ed8ffa6d1c4fb4c0102e4d0ade0b662a8abf36">Comma</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.find(<span class="charliteral">','</span>);</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>     <span class="keywordtype">unsigned</span> Bytes = 0;</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>     <span class="keywordtype">unsigned</span> EndOfLine = 0;</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> </div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>     <span class="keywordflow">if</span> (Comma == StringRef::npos ||</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.substr(0, Comma).getAsInteger(10, Bytes) ||</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>         <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.substr(Comma + 1).getAsInteger(10, EndOfLine))</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_preamble_format);</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>       Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a24671d094917020114917c55ee0c7a11" title="If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of b...">PrecompiledPreambleBytes</a>.first = Bytes;</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>       Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a24671d094917020114917c55ee0c7a11" title="If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of b...">PrecompiledPreambleBytes</a>.second = (EndOfLine != 0);</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>     }</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>   }</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> </div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>   <span class="comment">// Add macros from the command line.</span></div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_D, OPT_U),</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>          ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>     <span class="keywordflow">if</span> ((*it)->getOption().matches(OPT_D))</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>       Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a8cd0a8b49f2a5daf7a2397f2ffe037e2">addMacroDef</a>((*it)->getValue());</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>       Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a60d52bb936d5075235618c7f17fae70b">addMacroUndef</a>((*it)->getValue());</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>   }</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> </div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a1ab7a198bfde2831a06b9716986eab3b">MacroIncludes</a> = Args.getAllArgValues(OPT_imacros);</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> </div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>   <span class="comment">// Add the ordered list of -includes.</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_include),</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>          ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>     Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a1d10fb5b3335d765ea61e5a5cf3e1821">Includes</a>.push_back(A->getValue());</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>   }</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> </div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_chain_include),</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>          ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>     Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a9fdef652629b16e746a78455a9edae46" title="Headers that will be converted to chained PCHs in memory.">ChainedIncludes</a>.push_back(A->getValue());</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>   }</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> </div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>   <span class="comment">// Include 'altivec.h' if -faltivec option present</span></div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>   <span class="keywordflow">if</span> (Args.hasArg(OPT_faltivec))</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>     Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a1d10fb5b3335d765ea61e5a5cf3e1821">Includes</a>.push_back(<span class="stringliteral">"altivec.h"</span>);</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> </div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>   <span class="keywordflow">for</span> (arg_iterator it = Args.filtered_begin(OPT_remap_file),</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>          ie = Args.filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>     std::pair<StringRef,StringRef> Split =</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>       StringRef(A->getValue()).split(<span class="charliteral">';'</span>);</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> </div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>     <span class="keywordflow">if</span> (Split.second.empty()) {</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_remap_file) << A->getAsString(Args);</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>     }</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> </div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>     Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ad3696370ca31e4f1b5871cb7d58f589f">addRemappedFile</a>(Split.first, Split.second);</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>   }</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>   </div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(OPT_fobjc_arc_cxxlib_EQ)) {</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>     StringRef Name = A->getValue();</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>     <span class="keywordtype">unsigned</span> Library = llvm::StringSwitch<unsigned>(Name)</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>       .Case(<span class="stringliteral">"libc++"</span>, <a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a33c6ddd125a3f144029d859dc45b5c01" title="libc++">ARCXX_libcxx</a>)</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>       .Case(<span class="stringliteral">"libstdc++"</span>, <a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a9fd85370c60b0ff305cd2203fb1646f7" title="libstdc++">ARCXX_libstdcxx</a>)</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>       .Case(<span class="stringliteral">"none"</span>, <a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a6ff99b448e2797128b7f2065f3043d36">ARCXX_nolib</a>)</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>       .Default(~0U);</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>     <span class="keywordflow">if</span> (Library == ~0U)</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_value) << A->getAsString(Args) << Name;</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>       Opts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a539b6d0619bceaaf15a2cee0d0280fe8" title="The Objective-C++ ARC standard library that we should support, by providing appropriate definitions t...">ObjCXXARCStandardLibrary</a> = (<a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55" title="Enumerate the kinds of standard library that.">ObjCXXARCStandardLibraryKind</a>)Library;</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>   }</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> }</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> </div>
+<div class="line"><a name="l01555"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a91886bbd9b786cd585a44b4434dca78c"> 1555</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#a91886bbd9b786cd585a44b4434dca78c">ParsePreprocessorOutputArgs</a>(<a class="code" href="classclang_1_1PreprocessorOutputOptions.html">PreprocessorOutputOptions</a> &Opts,</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>                                         ArgList &Args,</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>                                         <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494">frontend::ActionKind</a> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a>) {</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> </div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>   <span class="keywordflow">switch</span> (Action) {</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494afc3d2654ad2fbabc69dbe1c6b3b97095" title="Parse ASTs and list Decl nodes.">frontend::ASTDeclList</a>:</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ab105e93166dee683e1dad5c4ee30dbf1" title="Parse ASTs and dump them.">frontend::ASTDump</a>:</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494aa22b521b51a38c91cb13b8f641b3428f" title="Parse ASTs and print them.">frontend::ASTPrint</a>:</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a64f67bf848de54612fd1d89b39721282" title="Parse ASTs and view them in Graphviz.">frontend::ASTView</a>:</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494aba032597b2814d4f4baa1de19cc4719d" title="Emit a .s file.">frontend::EmitAssembly</a>:</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a308259874f93b39f7b6833d47ecf516f" title="Emit a .bc file.">frontend::EmitBC</a>:</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ad7b8ae316dd885aab7f1dc0c90177771" title="Translate input source into HTML.">frontend::EmitHTML</a>:</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a4868b11dd199f5fa5bb6845e7a2f2ba1" title="Emit a .ll file.">frontend::EmitLLVM</a>:</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494aecf7b0553ab02539d17e6f169ee32097" title="Generate LLVM IR, but do not emit anything.">frontend::EmitLLVMOnly</a>:</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494abf59c8ec00b57f5c4def16d1a1812776" title="Generate machine code, but don't emit anything.">frontend::EmitCodeGenOnly</a>:</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a6ee1c7655e5c8b7053fdfaf0440114c7" title="Emit a .o file.">frontend::EmitObj</a>:</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ab6e7c5aeded6370019f90d02ecac339d" title="Parse and apply any fixits to the source.">frontend::FixIt</a>:</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494af92c241d1bd453a60a8e57c5be797dcf" title="Generate pre-compiled module.">frontend::GenerateModule</a>:</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ae47f6aa1ff0396b672fe55bc6d20c3c1" title="Generate pre-compiled header.">frontend::GeneratePCH</a>:</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a3bb2983b53bcf43494f3ba4eb17279b3" title="Generate pre-tokenized header.">frontend::GeneratePTH</a>:</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a1b2178b42b74358fd32479f36c85f784" title="Parse and perform semantic analysis.">frontend::ParseSyntaxOnly</a>:</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a98aac0195d04c53ea0f9912de487118f" title="Dump information about a module file.">frontend::ModuleFileInfo</a>:</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a680d6df9b916c04fec5229f9185f36c7" title="Run a plugin action,.">frontend::PluginAction</a>:</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a33fd607a15830f5cf98ff4a6b65b7f06" title="Print DeclContext and their Decls.">frontend::PrintDeclContext</a>:</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a8ba87375ecbff647fa1056961780b51d" title="ObjC->C Rewriter.">frontend::RewriteObjC</a>:</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a153bd49478d419c624847bcc17dd7d43" title="Rewriter playground.">frontend::RewriteTest</a>:</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a9b1fb8b91154c98283e0e67b56fe5238" title="Run one or more source code analyses.">frontend::RunAnalysis</a>:</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a4eb08c9f1c9d9074f3833e6e82f60274" title="Run migrator.">frontend::MigrateSource</a>:</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>     Opts.<a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4c3a9a3720c104c31ed2badb28dea000" title="Print normal preprocessed output.">ShowCPP</a> = 0;</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> </div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a714416fc79c63940353f5c24b7b8dfbd" title="Dump out raw tokens.">frontend::DumpRawTokens</a>:</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ab699642252b68744b5f8dc92f4aa2fdf" title="Dump out preprocessed tokens.">frontend::DumpTokens</a>:</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a607f02d2eeb6b3699744dad3bbd15d99" title="Only execute frontend initialization.">frontend::InitOnly</a>:</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a4bb4a78da6b9198dce92f9c2e6c26760" title="Print the "preamble" of the input file.">frontend::PrintPreamble</a>:</div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a1361671389ae911b55eab0ed38f6da2e" title="-E mode.">frontend::PrintPreprocessedInput</a>:</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494ac78b6afa8c5fb66eea418e7db40454fc" title="Expand macros but not #includes.">frontend::RewriteMacros</a>:</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a95463c071449e50857fe8f19dd4f80da" title="Just lex, no output.">frontend::RunPreprocessorOnly</a>:</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>     Opts.<a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4c3a9a3720c104c31ed2badb28dea000" title="Print normal preprocessed output.">ShowCPP</a> = !Args.hasArg(OPT_dM);</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>   }</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> </div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a81d6aa1fffa6fd1493ca043b6e62d57c" title="Show comments.">ShowComments</a> = Args.hasArg(OPT_C);</div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOutputOptions.html#ab576171c718194972386e246a0a79cb3" title="Show #line markers.">ShowLineMarkers</a> = !Args.hasArg(OPT_P);</div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4227e11e9188ccbb434d687819fb89ec" title="Show comments, even in macros.">ShowMacroComments</a> = Args.hasArg(OPT_CC);</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a30109a33ee837a7426261965346eddba" title="Print macro definitions.">ShowMacros</a> = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD);</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>   Opts.<a class="code" href="classclang_1_1PreprocessorOutputOptions.html#ab6f9ab2044d2627ed30a57983c3c901e" title="Preprocess include directives only.">RewriteIncludes</a> = Args.hasArg(OPT_frewrite_includes);</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> }</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> </div>
+<div class="line"><a name="l01605"></a><span class="lineno"><a class="code" href="CompilerInvocation_8cpp.html#a13c04e9f375bab21caf8b14a116270e6"> 1605</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInvocation_8cpp.html#a13c04e9f375bab21caf8b14a116270e6">ParseTargetArgs</a>(<a class="code" href="classclang_1_1TargetOptions.html" title="Options for controlling the target.">TargetOptions</a> &Opts, ArgList &Args) {</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>   <span class="keyword">using namespace </span>options;</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>   Opts.<a class="code" href="classclang_1_1TargetOptions.html#a50254b7ea1e4092810930e472ff5b96d" title="If given, the name of the target ABI to use.">ABI</a> = Args.getLastArgValue(OPT_target_abi);</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>   Opts.<a class="code" href="classclang_1_1TargetOptions.html#a9d1961ba580fd1a3dda9d440612cdf00">CXXABI</a> = Args.getLastArgValue(OPT_cxx_abi);</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>   Opts.<a class="code" href="classclang_1_1TargetOptions.html#a584ea7e329a9ec00a0888bc12ad7d0ed" title="If given, the name of the target CPU to generate code for.">CPU</a> = Args.getLastArgValue(OPT_target_cpu);</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>   Opts.<a class="code" href="classclang_1_1TargetOptions.html#a60557444fe57b93b00de03434635a3f5" title="If given, the unit to use for floating point math.">FPMath</a> = Args.getLastArgValue(OPT_mfpmath);</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>   Opts.<a class="code" href="classclang_1_1TargetOptions.html#aa56ed17e8d5b8fca1bc9db87a1a7e32e" title="The list of target specific features to enable or disable, as written on the command line...">FeaturesAsWritten</a> = Args.getAllArgValues(OPT_target_feature);</div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>   Opts.<a class="code" href="classclang_1_1TargetOptions.html#a25fdbed9006602b66f1c46d8f76bc371" title="If given, the version string of the linker in use.">LinkerVersion</a> = Args.getLastArgValue(OPT_target_linker_version);</div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>   Opts.<a class="code" href="classclang_1_1TargetOptions.html#a12b408888ccc3422095eedd01acb06df">Triple</a> = llvm::Triple::normalize(Args.getLastArgValue(OPT_triple));</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> </div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>   <span class="comment">// Use the default target triple if unspecified.</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>   <span class="keywordflow">if</span> (Opts.<a class="code" href="classclang_1_1TargetOptions.html#a12b408888ccc3422095eedd01acb06df">Triple</a>.empty())</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>     Opts.<a class="code" href="classclang_1_1TargetOptions.html#a12b408888ccc3422095eedd01acb06df">Triple</a> = llvm::sys::getDefaultTargetTriple();</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> }</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> </div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> <span class="comment">//</span></div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> </div>
+<div class="line"><a name="l01622"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#aa6263e2b0e6445cbd63a527a8cafe4ad"> 1622</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CompilerInvocation.html#aa6263e2b0e6445cbd63a527a8cafe4ad" title="Create a compiler invocation from a list of input options.">CompilerInvocation::CreateFromArgs</a>(<a class="code" href="classclang_1_1CompilerInvocation.html" title="Helper class for holding the data necessary to invoke the compiler.">CompilerInvocation</a> &Res,</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>                                         <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> *ArgBegin,</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>                                         <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> *ArgEnd,</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>                                         <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags) {</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>   <span class="keywordtype">bool</span> Success = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> </div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>   <span class="comment">// Parse the arguments.</span></div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<OptTable></a> Opts(<a class="code" href="namespaceclang_1_1driver.html#ac2485a979e2a532b08f76fe7c7988a9e">createDriverOptTable</a>());</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> IncludedFlagsBitmask = <a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2adadbcfc2cc15fd68625a5761692ed7fe">options::CC1Option</a>;</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>   <span class="keywordtype">unsigned</span> MissingArgIndex, MissingArgCount;</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<InputArgList></a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>(</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>     Opts->ParseArgs(ArgBegin, ArgEnd, MissingArgIndex, MissingArgCount,</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>                     IncludedFlagsBitmask));</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> </div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>   <span class="comment">// Check for missing argument error.</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>   <span class="keywordflow">if</span> (MissingArgCount) {</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_missing_argument)</div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>       << Args->getArgString(MissingArgIndex) << MissingArgCount;</div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>     Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>   }</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> </div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>   <span class="comment">// Issue errors on unknown arguments.</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>   <span class="keywordflow">for</span> (arg_iterator it = Args->filtered_begin(OPT_UNKNOWN),</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>          ie = Args->filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_unknown_argument) << (*it)->getAsString(*Args);</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>     Success = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>   }</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> </div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>   Success = <a class="code" href="CompilerInvocation_8cpp.html#a4f7921a803ddbb91abe4eff2e6830176">ParseAnalyzerArgs</a>(*Res.<a class="code" href="classclang_1_1CompilerInvocation.html#a80d8a45111119c2b0c5b502982fdd818">getAnalyzerOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, Diags) && Success;</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>   Success = <a class="code" href="CompilerInvocation_8cpp.html#a1b6b577e9f76e316f44c92dd6d3b5c11">ParseMigratorArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocation.html#a2e6422c35f625026711f361cdc193c60">getMigratorOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) && Success;</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>   <a class="code" href="CompilerInvocation_8cpp.html#a6c08dac3c5a91453bf650fe9abedca24">ParseDependencyOutputArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocation.html#ae098f46cfcb0c8f59366bfc3143d9ab4">getDependencyOutputOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>   Success = <a class="code" href="namespaceclang.html#a9c0953534d01ce273d08d025cf81f13a" title="Fill out Opts based on the options given in Args.">ParseDiagnosticArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocationBase.html#ac59ebcd24489a402872ebb041e8bdc4c">getDiagnosticOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, &Diags)</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>             && Success;</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>   <a class="code" href="CompilerInvocation_8cpp.html#a0b265a58a014887f6038018af0360f06">ParseCommentArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocationBase.html#aa3ece9f5c035b7e3260e596c4e9f64fe">getLangOpts</a>()-><a class="code" href="classclang_1_1LangOptions.html#a55b602de4cd250005ce67b32570c1bb7" title="Options for parsing comments.">CommentOpts</a>, *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>   <a class="code" href="CompilerInvocation_8cpp.html#aff89586a17c23f3f56576397ee763431">ParseFileSystemArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocation.html#a7d62299f8b36b09c37663996e6940621">getFileSystemOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>   <span class="comment">// FIXME: We shouldn't have to pass the DashX option around here</span></div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>   <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> DashX = <a class="code" href="CompilerInvocation_8cpp.html#a08793a3c6033b3d084ed76da2a6a1ac5">ParseFrontendArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocation.html#af457a44dcc046c3e14689989703c41c3">getFrontendOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, Diags);</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>   Success = <a class="code" href="CompilerInvocation_8cpp.html#adc71d53dcb280e44dbfc375d52906f7d">ParseCodeGenArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocation.html#a4369e534020dd2bf191462719179f555">getCodeGenOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, DashX, Diags)</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>             && Success;</div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>   <a class="code" href="CompilerInvocation_8cpp.html#aac2cb61f0445758d7d9ac2df25b72ee6">ParseHeaderSearchArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocationBase.html#a384464860a01f1954163a02df320e4e4">getHeaderSearchOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>   <span class="keywordflow">if</span> (DashX != <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6e091f96e7bc6407659089b0e0fa0b62">IK_AST</a> && DashX != <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10af41e61b39aea3f735b903fdf7cd5049c">IK_LLVM_IR</a>) {</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>     <a class="code" href="CompilerInvocation_8cpp.html#a936f51ef21450ad1e5d3f3cc20c84538">ParseLangArgs</a>(*Res.<a class="code" href="classclang_1_1CompilerInvocationBase.html#aa3ece9f5c035b7e3260e596c4e9f64fe">getLangOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, DashX, Diags);</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>     <span class="keywordflow">if</span> (Res.<a class="code" href="classclang_1_1CompilerInvocation.html#af457a44dcc046c3e14689989703c41c3">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a> == <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a8ba87375ecbff647fa1056961780b51d" title="ObjC->C Rewriter.">frontend::RewriteObjC</a>)</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>       Res.<a class="code" href="classclang_1_1CompilerInvocationBase.html#aa3ece9f5c035b7e3260e596c4e9f64fe">getLangOpts</a>()->ObjCExceptions = 1;</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>   }</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>   <span class="comment">// FIXME: ParsePreprocessorArgs uses the FileManager to read the contents of</span></div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>   <span class="comment">// PCH file and find the original header name. Remove the need to do that in</span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>   <span class="comment">// ParsePreprocessorArgs and remove the FileManager </span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>   <span class="comment">// parameters from the function and the "FileManager.h" #include.</span></div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>   <a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> FileMgr(Res.<a class="code" href="classclang_1_1CompilerInvocation.html#a7d62299f8b36b09c37663996e6940621">getFileSystemOpts</a>());</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>   <a class="code" href="CompilerInvocation_8cpp.html#a179b9fde7cfe09851bc6696a43048565">ParsePreprocessorArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocationBase.html#af26aa2f4a5df780a3b5898eef70763d5">getPreprocessorOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, FileMgr, Diags);</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>   <a class="code" href="CompilerInvocation_8cpp.html#a91886bbd9b786cd585a44b4434dca78c">ParsePreprocessorOutputArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocation.html#a12be5785d643b1807185c457e5a69b1a">getPreprocessorOutputOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>                               Res.<a class="code" href="classclang_1_1CompilerInvocation.html#af457a44dcc046c3e14689989703c41c3">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#aed06584fe9ea4e1cd6679c9a9ddfce77" title="The frontend action to perform.">ProgramAction</a>);</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>   <a class="code" href="CompilerInvocation_8cpp.html#a13c04e9f375bab21caf8b14a116270e6">ParseTargetArgs</a>(Res.<a class="code" href="classclang_1_1CompilerInvocationBase.html#afeed64a85dc6cd16c0dbb42a9872efdd">getTargetOpts</a>(), *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> </div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>   <span class="keywordflow">return</span> Success;</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> }</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> </div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> </div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>   <span class="keyword">class </span>ModuleSignature {</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<uint64_t, 16></a> Data;</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>     <span class="keywordtype">unsigned</span> CurBit;</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>     uint64_t CurValue;</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>     </div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>     ModuleSignature() : CurBit(0), CurValue(0) { }</div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>     </div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>     <span class="keywordtype">void</span> add(uint64_t <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>, <span class="keywordtype">unsigned</span> Bits);</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>     <span class="keywordtype">void</span> add(StringRef <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>);</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>     <span class="keywordtype">void</span> flush();</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>     </div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>     llvm::APInt getAsInteger() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>   };</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> }</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> </div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> <span class="keywordtype">void</span> ModuleSignature::add(uint64_t <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> NumBits) {</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>   CurValue |= Value << CurBit;</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>   <span class="keywordflow">if</span> (CurBit + NumBits < 64) {</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>     CurBit += NumBits;</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>   }</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>   </div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>   <span class="comment">// Add the current word.</span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>   Data.push_back(CurValue);</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>   </div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>   <span class="keywordflow">if</span> (CurBit)</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>     CurValue = Value >> (64-CurBit);</div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>     CurValue = 0;</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>   CurBit = (CurBit+NumBits) & 63;</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> }</div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> </div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="keywordtype">void</span> ModuleSignature::flush() {</div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>   <span class="keywordflow">if</span> (CurBit == 0)</div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>   </div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>   Data.push_back(CurValue);</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>   CurBit = 0;</div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>   CurValue = 0;</div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> }</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> </div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> <span class="keywordtype">void</span> ModuleSignature::add(StringRef Value) {</div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>   <span class="keywordflow">for</span> (StringRef::iterator I = Value.begin(), IEnd = Value.end(); I != IEnd;++I)</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>     add(*I, 8);</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> }</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> </div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> llvm::APInt ModuleSignature::getAsInteger()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>   <span class="keywordflow">return</span> llvm::APInt(Data.size() * 64, Data);</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> }</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> </div>
+<div class="line"><a name="l01733"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a234ce051b3992d616a6fd2235a5ee3e3"> 1733</a></span> std::string <a class="code" href="classclang_1_1CompilerInvocation.html#a234ce051b3992d616a6fd2235a5ee3e3" title="Retrieve a module hash string that is suitable for uniquely identifying the conditions under which th...">CompilerInvocation::getModuleHash</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>   <span class="comment">// Note: For QoI reasons, the things we use as a hash here should all be</span></div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>   <span class="comment">// dumped via the -module-info flag.</span></div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>   <span class="keyword">using</span> llvm::hash_code;</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>   <span class="keyword">using</span> llvm::hash_value;</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>   <span class="keyword">using</span> llvm::hash_combine;</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> </div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>   <span class="comment">// Start the signature with the compiler version.</span></div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>   <span class="comment">// FIXME: We'd rather use something more cryptographically sound than</span></div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>   <span class="comment">// CityHash, but this will do for now.</span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>   hash_code code = hash_value(<a class="code" href="namespaceclang.html#ad7362431b8742d66c944c9cd9d6c4b03" title="Retrieves the full repository version that is an amalgamation of the information in getClangRepositor...">getClangFullRepositoryVersion</a>());</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> </div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>   <span class="comment">// Extend the signature with the language options</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> <span class="preprocessor">#define LANGOPT(Name, Bits, Default, Description) \</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="preprocessor">   code = hash_combine(code, LangOpts->Name);</span></div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="preprocessor"></span><span class="preprocessor">#define ENUM_LANGOPT(Name, Type, Bits, Default, Description) \</span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> <span class="preprocessor">  code = hash_combine(code, static_cast<unsigned>(LangOpts->get##Name()));</span></div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <span class="preprocessor"></span><span class="preprocessor">#define BENIGN_LANGOPT(Name, Bits, Default, Description)</span></div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="preprocessor"></span><span class="preprocessor">#define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description)</span></div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="preprocessor"></span><span class="preprocessor">#include "clang/Basic/LangOptions.def"</span></div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>   </div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>   <span class="comment">// Extend the signature with the target options.</span></div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>   code = hash_combine(code, TargetOpts->Triple, TargetOpts->CPU,</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>                       TargetOpts->ABI, TargetOpts->CXXABI,</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>                       TargetOpts->LinkerVersion);</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, n = TargetOpts->FeaturesAsWritten.size(); i != n; ++i)</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>     code = hash_combine(code, TargetOpts->FeaturesAsWritten[i]);</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> </div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>   <span class="comment">// Extend the signature with preprocessor options.</span></div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> &ppOpts = getPreprocessorOpts();</div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a> &hsOpts = getHeaderSearchOpts();</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>   code = hash_combine(code, ppOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a6bf6504a1e99a33278fc9918525482be" title="Initialize the preprocessor with the compiler and target specific predefines.">UsePredefines</a>, ppOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#af9425f8ba984d1f17bbf5417bb45fb94" title="Whether we should maintain a detailed record of all macro definitions and expansions.">DetailedRecord</a>);</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> </div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>   std::vector<StringRef> MacroDefs;</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>   <span class="keywordflow">for</span> (std::vector<std::pair<std::string, bool/*isUndef*/> >::const_iterator </div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>             I = getPreprocessorOpts().Macros.begin(),</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>          IEnd = getPreprocessorOpts().Macros.end();</div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>        I != IEnd; ++I) {</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>     <span class="comment">// If we're supposed to ignore this macro for the purposes of modules,</span></div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>     <span class="comment">// don't put it into the hash.</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>     <span class="keywordflow">if</span> (!hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a2144688937661163b5188a19edd834c6" title="The set of macro names that should be ignored for the purposes of computing the module hash...">ModulesIgnoreMacros</a>.empty()) {</div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>       <span class="comment">// Check whether we're ignoring this macro.</span></div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>       StringRef MacroDef = I->first;</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>       <span class="keywordflow">if</span> (hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a2144688937661163b5188a19edd834c6" title="The set of macro names that should be ignored for the purposes of computing the module hash...">ModulesIgnoreMacros</a>.count(MacroDef.split(<span class="charliteral">'='</span>).first))</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>     }</div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> </div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>     code = hash_combine(code, I->first, I->second);</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>   }</div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> </div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>   <span class="comment">// Extend the signature with the sysroot.</span></div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>   code = hash_combine(code, hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a7b2c49429c3e24836a745727bd14dfbb">Sysroot</a>, hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a9728d4297286c77fd6d306eda1d3aade" title="Include the compiler builtin includes.">UseBuiltinIncludes</a>,</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>                       hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#accb2fa9a6d1af19217718168dedde735" title="Include the system standard include search directories.">UseStandardSystemIncludes</a>,</div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>                       hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#aa50fb306fc3b3afd9772e2769cd798d5" title="Include the system standard C++ library include search directories.">UseStandardCXXIncludes</a>,</div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>                       hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a9583c71fac1ed1bc2683a06e7895ee52" title="Use libc++ instead of the default libstdc++.">UseLibcxx</a>);</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> </div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>   <span class="comment">// Darwin-specific hack: if we have a sysroot, use the contents and</span></div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>   <span class="comment">// modification time of</span></div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>   <span class="comment">//   $sysroot/System/Library/CoreServices/SystemVersion.plist</span></div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>   <span class="comment">// as part of the module hash.</span></div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>   <span class="keywordflow">if</span> (!hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a7b2c49429c3e24836a745727bd14dfbb">Sysroot</a>.empty()) {</div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>     <a class="code" href="classllvm_1_1OwningPtr.html">llvm::OwningPtr<llvm::MemoryBuffer></a> buffer;</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> systemVersionFile;</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>     systemVersionFile += hsOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a7b2c49429c3e24836a745727bd14dfbb">Sysroot</a>;</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>     llvm::sys::path::append(systemVersionFile, <span class="stringliteral">"System"</span>);</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>     llvm::sys::path::append(systemVersionFile, <span class="stringliteral">"Library"</span>);</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>     llvm::sys::path::append(systemVersionFile, <span class="stringliteral">"CoreServices"</span>);</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>     llvm::sys::path::append(systemVersionFile, <span class="stringliteral">"SystemVersion.plist"</span>);</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>     <span class="keywordflow">if</span> (!llvm::MemoryBuffer::getFile(systemVersionFile.str(), buffer)) {</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>       code = hash_combine(code, buffer.get()->getBuffer());</div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> </div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>       <span class="keyword">struct </span>stat statBuf;</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>       <span class="keywordflow">if</span> (stat(systemVersionFile.c_str(), &statBuf) == 0)</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>         code = hash_combine(code, statBuf.st_mtime);</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>     }</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>   }</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> </div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>   <span class="keywordflow">return</span> llvm::APInt(64, code).toString(36, <span class="comment">/*Signed=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> }</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> </div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> </div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> <span class="comment">// Declared in clang/Frontend/Utils.h.</span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"><a class="code" href="namespaceclang.html#a2981e2a4d177825439b721cd0cd64b8e"> 1816</a></span> <span class="keywordtype">int</span> <a class="code" href="namespaceclang.html#a99621905fc33c9e9a95c1c86ce5e9710">getLastArgIntValue</a>(<span class="keyword">const</span> ArgList &Args, OptSpecifier Id, <span class="keywordtype">int</span> Default,</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>                        <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> *Diags) {</div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>   <span class="keywordtype">int</span> Res = Default;</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(Id)) {</div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>     <span class="keywordflow">if</span> (StringRef(A->getValue()).getAsInteger(10, Res)) {</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>       <span class="keywordflow">if</span> (Diags)</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>         Diags-><a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_drv_invalid_int_value) << A->getAsString(Args)</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>                                                        << A->getValue();</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>     }</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>   }</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>   <span class="keywordflow">return</span> Res;</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> }</div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 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/CompilerInvocation_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,604 @@
+<!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: CompilerInvocation.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_cfd7caa53089bfce4c036750f74ca8fe.html">Frontend</a></li><li class="navelem"><a class="el" href="dir_d028e0ee810452766990d0b974c930cc.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilerInvocation.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilerInvocation_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/Frontend/Release+Asserts/CompilerInvocation.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/Release+Asserts/CompilerInvocation.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  CompilerInvocation.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CompilerInvocation.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CodeGenOptions.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CodeGenOptions.def \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/DependencyOutputOptions.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/FrontendOptions.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CommandLineSourceLoc.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.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/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/LangStandard.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/LangStandards.def \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/MigratorOptions.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/PreprocessorOutputOptions.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearchOptions.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorOptions.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Version.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Version.inc \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Driver/DriverDiagnostic.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticDriverKinds.inc \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Driver/Options.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Driver/Options.inc \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Driver/Util.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/Utils.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ASTReader.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../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="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../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="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/SourceManager.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/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ExternalPreprocessorSource.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessingRecord.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../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="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ASTBitCodes.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ContinuousRangeMap.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/Module.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitstreamReader.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/include/llvm/Support/Endian.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/include/llvm/Support/Host.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/include/llvm/Support/StreamableMemoryObject.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/include/llvm/Support/DataStream.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/include/llvm/Support/MemoryObject.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ModuleManager.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>  /home/tstellar/llvm/include/llvm/ADT/Hashing.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>  /home/tstellar/llvm/include/llvm/ADT/StringExtras.h \</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>  /home/tstellar/llvm/include/llvm/Option/Arg.h \</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>  /home/tstellar/llvm/include/llvm/Option/Option.h \</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>  /home/tstellar/llvm/include/llvm/Option/OptTable.h \</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>  /home/tstellar/llvm/include/llvm/Option/ArgList.h \</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>  /home/tstellar/llvm/include/llvm/Support/Path.h \</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>  /home/tstellar/llvm/include/llvm/Support/Process.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/Frontend/../../include/clang/Frontend/CompilerInvocation.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/Frontend/../../include/clang/Basic/DiagnosticOptions.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/Frontend/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.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/None.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/IntrusiveRefCntPtr.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/Compiler.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/Config/llvm-config.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/Frontend/../../include/clang/Basic/DiagnosticOptions.def:</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/tools/clang/lib/Frontend/../../include/clang/Basic/FileSystemOptions.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/tools/clang/lib/Frontend/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/VersionTuple.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/Optional.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/AlignOf.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/Triple.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/include/llvm/ADT/Twine.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/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.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/Frontend/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="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/Frontend/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="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/Frontend/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/LangOptions.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/tools/clang/lib/Frontend/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TargetOptions.h:</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CodeGenOptions.h:</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CodeGenOptions.def:</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/Frontend/../../include/clang/Frontend/DependencyOutputOptions.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/Frontend/../../include/clang/Frontend/FrontendOptions.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/Frontend/../../include/clang/Frontend/CommandLineSourceLoc.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/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h:</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/Support/raw_ostream.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/Support/FileSystem.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h:</div>
+<div class="line"><a name="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/Frontend/../../include/clang/Frontend/LangStandard.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/Frontend/../../include/clang/Frontend/LangStandards.def:</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/Frontend/../../include/clang/Frontend/MigratorOptions.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/Frontend/../../include/clang/Frontend/PreprocessorOutputOptions.h:</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearchOptions.h:</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.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/include/llvm/ADT/SmallSet.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/include/llvm/ADT/SmallPtrSet.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/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorOptions.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/tools/clang/lib/Frontend/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h:</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def:</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticIDs.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/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.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/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Version.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/Frontend/../../include/clang/Basic/Version.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/Frontend/../../include/clang/Driver/DriverDiagnostic.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/Frontend/../../include/clang/Basic/DiagnosticDriverKinds.inc:</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/Frontend/../../include/clang/Driver/Options.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/Frontend/../../include/clang/Driver/Options.inc:</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/Frontend/../../include/clang/Driver/Util.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/Frontend/../../include/clang/Frontend/Utils.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/include/llvm/Option/OptSpecifier.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/Frontend/../../include/clang/Serialization/ASTReader.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/Frontend/../../include/clang/AST/DeclObjC.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/Frontend/../../include/clang/AST/Decl.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/Frontend/../../include/clang/AST/APValue.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/include/llvm/ADT/APFloat.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/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.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/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.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/Frontend/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/AttrIterator.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/Frontend/../../include/clang/AST/DeclarationName.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/Frontend/../../include/clang/Basic/IdentifierTable.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/Frontend/../../include/clang/Basic/OperatorKinds.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/Frontend/../../include/clang/Basic/OperatorKinds.def:</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/Frontend/../../include/clang/Basic/TokenKinds.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/Frontend/../../include/clang/Basic/TokenKinds.def:</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/Frontend/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Specifiers.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/include/llvm/Support/PrettyStackTrace.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/Frontend/../../include/clang/AST/DeclNodes.inc:</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/Frontend/../../include/clang/AST/ExternalASTSource.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/Frontend/../../include/clang/AST/CharUnits.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/Frontend/../../include/clang/AST/Redeclarable.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/Frontend/../../include/clang/AST/Type.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/Frontend/../../include/clang/AST/NestedNameSpecifier.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/include/llvm/ADT/FoldingSet.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/Frontend/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../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="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/Frontend/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../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="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/Frontend/../../include/clang/AST/TemplateBase.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/Frontend/../../include/clang/Basic/SourceManager.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/include/llvm/ADT/DenseSet.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/include/llvm/Support/MemoryBuffer.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/CBindingWrapping.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/include/llvm-c/Core.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/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ExternalPreprocessorSource.h:</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.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/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.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/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/Frontend/../../include/clang/Basic/Module.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/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessingRecord.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/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.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/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> </div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/ExternalSemaSource.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/Frontend/../../include/clang/Sema/TypoCorrection.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/Frontend/../../include/clang/AST/DeclCXX.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/Frontend/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTVector.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/Frontend/../../include/clang/AST/UnresolvedSet.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/Frontend/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Expr.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/Frontend/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/StmtIterator.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/Frontend/../../include/clang/Basic/CapturedStmt.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/Frontend/../../include/clang/AST/StmtNodes.inc:</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/Frontend/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TypeTraits.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/tools/clang/lib/Frontend/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ExprCXX.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/Frontend/../../include/clang/Basic/ExpressionTraits.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/tools/clang/lib/Frontend/../../include/clang/Basic/Lambda.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/tools/clang/lib/Frontend/../../include/clang/AST/TypeLoc.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/Frontend/../../include/clang/AST/TypeLocNodes.def:</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/Frontend/../../include/clang/Sema/DeclSpec.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/Frontend/../../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="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/Frontend/../../include/clang/Basic/TemplateKinds.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/Frontend/../../include/clang/Sema/AttributeList.h:</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/Ownership.h:</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/AttrParsedAttrList.inc:</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/Weak.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/include/llvm/ADT/MapVector.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/Frontend/../../include/clang/Serialization/ASTBitCodes.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/include/llvm/Bitcode/BitCodes.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/Frontend/../../include/clang/Serialization/ContinuousRangeMap.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/tools/clang/lib/Frontend/../../include/clang/Serialization/Module.h:</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> /home/tstellar/llvm/include/llvm/Bitcode/BitstreamReader.h:</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> /home/tstellar/llvm/include/llvm/Support/Endian.h:</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> </div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> /home/tstellar/llvm/include/llvm/Support/Host.h:</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> </div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> /home/tstellar/llvm/include/llvm/Support/StreamableMemoryObject.h:</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> /home/tstellar/llvm/include/llvm/Support/DataStream.h:</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> /home/tstellar/llvm/include/llvm/Support/MemoryObject.h:</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ModuleManager.h:</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> </div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> /home/tstellar/llvm/include/llvm/ADT/Hashing.h:</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> /home/tstellar/llvm/include/llvm/ADT/StringExtras.h:</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> </div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</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> /home/tstellar/llvm/include/llvm/Option/Arg.h:</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> </div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> /home/tstellar/llvm/include/llvm/Option/Option.h:</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> </div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> /home/tstellar/llvm/include/llvm/Option/OptTable.h:</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> </div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> /home/tstellar/llvm/include/llvm/Option/ArgList.h:</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> /home/tstellar/llvm/include/llvm/Support/Path.h:</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> /home/tstellar/llvm/include/llvm/Support/Process.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:30 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/CompilerInvocation_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInvocation_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,288 @@
+<!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: CompilerInvocation.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_86a50fedfdd177331e407e41b0c0394f.html">Frontend</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilerInvocation.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilerInvocation_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">//===-- CompilerInvocation.h - Compiler Invocation Helper Data --*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#ifndef LLVM_CLANG_FRONTEND_COMPILERINVOCATION_H_</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_FRONTEND_COMPILERINVOCATION_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="DiagnosticOptions_8h.html">clang/Basic/DiagnosticOptions.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="FileSystemOptions_8h.html" title="Defines the clang::FileSystemOptions interface.">clang/Basic/FileSystemOptions.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="LangOptions_8h.html" title="Defines the clang::LangOptions interface.">clang/Basic/LangOptions.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="TargetOptions_8h.html" title="Defines the clang::TargetOptions class.">clang/Basic/TargetOptions.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="CodeGenOptions_8h.html">clang/Frontend/CodeGenOptions.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="DependencyOutputOptions_8h.html">clang/Frontend/DependencyOutputOptions.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="FrontendOptions_8h.html">clang/Frontend/FrontendOptions.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="LangStandard_8h.html">clang/Frontend/LangStandard.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="MigratorOptions_8h.html">clang/Frontend/MigratorOptions.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="PreprocessorOutputOptions_8h.html">clang/Frontend/PreprocessorOutputOptions.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="HeaderSearchOptions_8h.html">clang/Lex/HeaderSearchOptions.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="PreprocessorOptions_8h.html">clang/Lex/PreprocessorOptions.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="AnalyzerOptions_8h.html">clang/StaticAnalyzer/Core/AnalyzerOptions.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "llvm/ADT/IntrusiveRefCntPtr.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "llvm/ADT/StringMap.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">namespace </span>opt {</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">class </span>ArgList;</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> }</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="keyword">class </span>CompilerInvocation;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="keyword">class </span>DiagnosticsEngine;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment"></span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">/// \brief Fill out Opts based on the options given in Args.</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">/// Args must have been created from the OptTable returned by</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">/// createCC1OptTable().</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">/// When errors are encountered, return false and, if Diags is non-null,</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">/// report the error(s).</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="namespaceclang.html#a9c0953534d01ce273d08d025cf81f13a" title="Fill out Opts based on the options given in Args.">ParseDiagnosticArgs</a>(DiagnosticOptions &Opts, llvm::opt::ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>                          DiagnosticsEngine *Diags = 0);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html">   52</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1CompilerInvocationBase.html">CompilerInvocationBase</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1RefCountedBase.html">RefCountedBase</a><CompilerInvocation> {</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="keyword">protected</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">  /// Options controlling the language variant.</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a62db7724516d73ae8e40820954c214d8">   55</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<LangOptions></a> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a62db7724516d73ae8e40820954c214d8" title="Options controlling the language variant.">LangOpts</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment"></span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">  /// Options controlling the target.</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a7dd2574ec3081a7b492cae8f17a0b872">   58</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<TargetOptions></a> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a7dd2574ec3081a7b492cae8f17a0b872" title="Options controlling the target.">TargetOpts</a>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment"></span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">  /// Options controlling the diagnostic engine.</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a9e5804301f28367954459e9152c15374">   61</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<DiagnosticOptions></a> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a9e5804301f28367954459e9152c15374" title="Options controlling the diagnostic engine.">DiagnosticOpts</a>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">  /// Options controlling the \#include directive.</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a99482dbc59e1908e15a24428a2ef43f8">   64</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<HeaderSearchOptions></a> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a99482dbc59e1908e15a24428a2ef43f8" title="Options controlling the #include directive.">HeaderSearchOpts</a>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">  /// Options controlling the preprocessor (aside from \#include handling).</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a560664f76db67a70e212f5b579996ecf">   67</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<PreprocessorOptions></a> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a560664f76db67a70e212f5b579996ecf" title="Options controlling the preprocessor (aside from #include handling).">PreprocessorOpts</a>;</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="keyword">public</span>:</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <a class="code" href="classclang_1_1CompilerInvocationBase.html#a12df14bd01316b2cd061a895d8f9f0a2">CompilerInvocationBase</a>();</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>   <a class="code" href="classclang_1_1CompilerInvocationBase.html#a12df14bd01316b2cd061a895d8f9f0a2">CompilerInvocationBase</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompilerInvocationBase.html">CompilerInvocationBase</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#aa3ece9f5c035b7e3260e596c4e9f64fe">   74</a></span>   <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#aa3ece9f5c035b7e3260e596c4e9f64fe">getLangOpts</a>() { <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a62db7724516d73ae8e40820954c214d8" title="Options controlling the language variant.">LangOpts</a>.getPtr(); }</div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#af7c87a402eb46322156f909e7641c051">   75</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#af7c87a402eb46322156f909e7641c051">getLangOpts</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CompilerInvocationBase.html#a62db7724516d73ae8e40820954c214d8" title="Options controlling the language variant.">LangOpts</a>.getPtr(); }</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#afeed64a85dc6cd16c0dbb42a9872efdd">   77</a></span>   <a class="code" href="classclang_1_1TargetOptions.html" title="Options for controlling the target.">TargetOptions</a> &<a class="code" href="classclang_1_1CompilerInvocationBase.html#afeed64a85dc6cd16c0dbb42a9872efdd">getTargetOpts</a>() { <span class="keywordflow">return</span> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#a7dd2574ec3081a7b492cae8f17a0b872" title="Options controlling the target.">TargetOpts</a>.getPtr(); }</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a1a613750ace488458fa3514b40f5f1db">   78</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetOptions.html" title="Options for controlling the target.">TargetOptions</a> &<a class="code" href="classclang_1_1CompilerInvocationBase.html#a1a613750ace488458fa3514b40f5f1db">getTargetOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>     <span class="keywordflow">return</span> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#a7dd2574ec3081a7b492cae8f17a0b872" title="Options controlling the target.">TargetOpts</a>.getPtr();</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> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#ac59ebcd24489a402872ebb041e8bdc4c">   82</a></span>   <a class="code" href="classclang_1_1DiagnosticOptions.html" title="Options for controlling the compiler diagnostics engine.">DiagnosticOptions</a> &<a class="code" href="classclang_1_1CompilerInvocationBase.html#ac59ebcd24489a402872ebb041e8bdc4c">getDiagnosticOpts</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#a9e5804301f28367954459e9152c15374" title="Options controlling the diagnostic engine.">DiagnosticOpts</a>; }</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#a384464860a01f1954163a02df320e4e4">   84</a></span>   <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a> &<a class="code" href="classclang_1_1CompilerInvocationBase.html#a384464860a01f1954163a02df320e4e4">getHeaderSearchOpts</a>() { <span class="keywordflow">return</span> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#a99482dbc59e1908e15a24428a2ef43f8" title="Options controlling the #include directive.">HeaderSearchOpts</a>; }</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#ac74fc24fad9daef56e8b50d8761ea7f7">   85</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a> &<a class="code" href="classclang_1_1CompilerInvocationBase.html#ac74fc24fad9daef56e8b50d8761ea7f7">getHeaderSearchOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     <span class="keywordflow">return</span> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#a99482dbc59e1908e15a24428a2ef43f8" title="Options controlling the #include directive.">HeaderSearchOpts</a>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>   }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#af26aa2f4a5df780a3b5898eef70763d5">   89</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> &<a class="code" href="classclang_1_1CompilerInvocationBase.html#af26aa2f4a5df780a3b5898eef70763d5">getPreprocessorOpts</a>() { <span class="keywordflow">return</span> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#a560664f76db67a70e212f5b579996ecf" title="Options controlling the preprocessor (aside from #include handling).">PreprocessorOpts</a>; }</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocationBase.html#ab844c8d568d73a0d110fada416b8fbbf">   90</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> &<a class="code" href="classclang_1_1CompilerInvocationBase.html#ab844c8d568d73a0d110fada416b8fbbf">getPreprocessorOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>     <span class="keywordflow">return</span> *<a class="code" href="classclang_1_1CompilerInvocationBase.html#a560664f76db67a70e212f5b579996ecf" title="Options controlling the preprocessor (aside from #include handling).">PreprocessorOpts</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> };</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">/// \brief Helper class for holding the data necessary to invoke the compiler.</span></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">/// This class is designed to represent an abstract "invocation" of the</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">/// compiler, including data such as the include paths, the code generation</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">/// options, the warning flags, and so on.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html">  100</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1CompilerInvocation.html" title="Helper class for holding the data necessary to invoke the compiler.">CompilerInvocation</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1CompilerInvocationBase.html">CompilerInvocationBase</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">  /// Options controlling the static analyzer.</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment"></span>  <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">AnalyzerOptionsRef</a> AnalyzerOpts;</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>   <a class="code" href="classclang_1_1MigratorOptions.html">MigratorOptions</a> MigratorOpts;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">  /// Options controlling IRgen and the backend.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGenOptions.html">CodeGenOptions</a> CodeGenOpts;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment"></span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">  /// Options controlling dependency output.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment"></span>  <a class="code" href="classclang_1_1DependencyOutputOptions.html">DependencyOutputOptions</a> DependencyOutputOpts;</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">  /// Options controlling file system operations.</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment"></span>  <a class="code" href="classclang_1_1FileSystemOptions.html" title="Keeps track of options that affect how file operations are performed.">FileSystemOptions</a> FileSystemOpts;</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> <span class="comment">  /// Options controlling the frontend itself.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment"></span>  <a class="code" href="classclang_1_1FrontendOptions.html" title="FrontendOptions - Options for controlling the behavior of the frontend.">FrontendOptions</a> FrontendOpts;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment"></span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">  /// Options controlling preprocessed output.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment"></span>  <a class="code" href="classclang_1_1PreprocessorOutputOptions.html">PreprocessorOutputOptions</a> PreprocessorOutputOpts;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#afe23b63d45720ee7ff8e32dc8eb68b83">  122</a></span>   <a class="code" href="classclang_1_1CompilerInvocation.html#afe23b63d45720ee7ff8e32dc8eb68b83">CompilerInvocation</a>() : AnalyzerOpts(new <a class="code" href="classclang_1_1AnalyzerOptions.html">AnalyzerOptions</a>()) {}</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment"></span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">  /// @name Utility Methods</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">  /// @{</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">  /// \brief Create a compiler invocation from a list of input options.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">  /// \returns true on success.</span></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">  /// \param [out] Res - The resulting invocation.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">  /// \param ArgBegin - The first element in the argument vector.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">  /// \param ArgEnd - The last element in the argument vector.</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">  /// \param Diags - The diagnostic engine to use for errors.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CompilerInvocation.html#aa6263e2b0e6445cbd63a527a8cafe4ad" title="Create a compiler invocation from a list of input options.">CreateFromArgs</a>(<a class="code" href="classclang_1_1CompilerInvocation.html" title="Helper class for holding the data necessary to invoke the compiler.">CompilerInvocation</a> &Res,</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>                              <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> *ArgBegin,</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>                              <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> *ArgEnd,</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>                              <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags);</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">  /// \brief Get the directory where the compiler headers</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">  /// reside, relative to the compiler binary (found by the passed in</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">  /// arguments).</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">  /// \param Argv0 - The program path (from argv[0]), for finding the builtin</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">  /// compiler path.</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">  /// \param MainAddr - The address of main (or some other function in the main</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">  /// executable), for finding the builtin compiler path.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment"></span>  <span class="keyword">static</span> std::string <a class="code" href="classclang_1_1CompilerInvocation.html#a21e87a1469b3212140f3befc6c37c4c6" title="Get the directory where the compiler headers reside, relative to the compiler binary (found by the pa...">GetResourcesPath</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Argv0, <span class="keywordtype">void</span> *MainAddr);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment"></span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">  /// \brief Set language defaults for the given input language and</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">  /// language standard in the given LangOptions object.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">  /// \param Opts - The LangOptions object to set up.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">  /// \param IK - The input language.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">  /// \param LangStd - The input language standard.</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInvocation.html#a6f821e99ab43af6cb71c8108581a79c1" title="Set language defaults for the given input language and language standard in the given LangOptions obj...">setLangDefaults</a>(<a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &Opts, <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> IK,</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>                    <a class="code" href="structclang_1_1LangStandard.html#a8ad52b8124df039d7e4919b5cf27bc25">LangStandard::Kind</a> LangStd = LangStandard::lang_unspecified);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">  /// \brief Retrieve a module hash string that is suitable for uniquely </span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">  /// identifying the conditions under which the module was built.</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1CompilerInvocation.html#a234ce051b3992d616a6fd2235a5ee3e3" title="Retrieve a module hash string that is suitable for uniquely identifying the conditions under which th...">getModuleHash</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">  /// @}</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">  /// @name Option Subgroups</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">  /// @{</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment"></span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a80d8a45111119c2b0c5b502982fdd818">  166</a></span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">AnalyzerOptionsRef</a> <a class="code" href="classclang_1_1CompilerInvocation.html#a80d8a45111119c2b0c5b502982fdd818">getAnalyzerOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>     <span class="keywordflow">return</span> AnalyzerOpts;</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> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a2e6422c35f625026711f361cdc193c60">  170</a></span>   <a class="code" href="classclang_1_1MigratorOptions.html">MigratorOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#a2e6422c35f625026711f361cdc193c60">getMigratorOpts</a>() { <span class="keywordflow">return</span> MigratorOpts; }</div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#aae77585fb392b139b9e658a0b8e37696">  171</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1MigratorOptions.html">MigratorOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#aae77585fb392b139b9e658a0b8e37696">getMigratorOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     <span class="keywordflow">return</span> MigratorOpts;</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"><a class="code" href="classclang_1_1CompilerInvocation.html#a4369e534020dd2bf191462719179f555">  175</a></span>   <a class="code" href="classclang_1_1CodeGenOptions.html">CodeGenOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#a4369e534020dd2bf191462719179f555">getCodeGenOpts</a>() { <span class="keywordflow">return</span> CodeGenOpts; }</div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a64b4150a16c91a4fb7d7ef7bdfdf53ca">  176</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGenOptions.html">CodeGenOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#a64b4150a16c91a4fb7d7ef7bdfdf53ca">getCodeGenOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     <span class="keywordflow">return</span> CodeGenOpts;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   }</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#ae098f46cfcb0c8f59366bfc3143d9ab4">  180</a></span>   <a class="code" href="classclang_1_1DependencyOutputOptions.html">DependencyOutputOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#ae098f46cfcb0c8f59366bfc3143d9ab4">getDependencyOutputOpts</a>() {</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     <span class="keywordflow">return</span> DependencyOutputOpts;</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>   }</div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a37c3c673f0efd31bc93fb01e5ba5ae43">  183</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DependencyOutputOptions.html">DependencyOutputOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#a37c3c673f0efd31bc93fb01e5ba5ae43">getDependencyOutputOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>     <span class="keywordflow">return</span> DependencyOutputOpts;</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> </div>
+<div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a7d62299f8b36b09c37663996e6940621">  187</a></span>   <a class="code" href="classclang_1_1FileSystemOptions.html" title="Keeps track of options that affect how file operations are performed.">FileSystemOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#a7d62299f8b36b09c37663996e6940621">getFileSystemOpts</a>() { <span class="keywordflow">return</span> FileSystemOpts; }</div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#aa6a8f7ebeafa6f83dfba7296b5be1e6f">  188</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FileSystemOptions.html" title="Keeps track of options that affect how file operations are performed.">FileSystemOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#aa6a8f7ebeafa6f83dfba7296b5be1e6f">getFileSystemOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>     <span class="keywordflow">return</span> FileSystemOpts;</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"><a class="code" href="classclang_1_1CompilerInvocation.html#af457a44dcc046c3e14689989703c41c3">  192</a></span>   <a class="code" href="classclang_1_1FrontendOptions.html" title="FrontendOptions - Options for controlling the behavior of the frontend.">FrontendOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#af457a44dcc046c3e14689989703c41c3">getFrontendOpts</a>() { <span class="keywordflow">return</span> FrontendOpts; }</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a9020dbd9d3bd23b4671846f1d2364326">  193</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FrontendOptions.html" title="FrontendOptions - Options for controlling the behavior of the frontend.">FrontendOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#a9020dbd9d3bd23b4671846f1d2364326">getFrontendOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>     <span class="keywordflow">return</span> FrontendOpts;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>   }</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#a12be5785d643b1807185c457e5a69b1a">  197</a></span>   <a class="code" href="classclang_1_1PreprocessorOutputOptions.html">PreprocessorOutputOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#a12be5785d643b1807185c457e5a69b1a">getPreprocessorOutputOpts</a>() {</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     <span class="keywordflow">return</span> PreprocessorOutputOpts;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>   }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInvocation.html#abb22ef15d742d333138e358876caff6b">  200</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessorOutputOptions.html">PreprocessorOutputOptions</a> &<a class="code" href="classclang_1_1CompilerInvocation.html#abb22ef15d742d333138e358876caff6b">getPreprocessorOutputOpts</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>     <span class="keywordflow">return</span> PreprocessorOutputOpts;</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="comment"></span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">  /// @}</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment"></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> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:30 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/ConstraintManager_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,118 @@
+<!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: ConstraintManager.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_8c061bf4f1cf580e717ceaf4321c4465.html">Core</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ConstraintManager.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ConstraintManager_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">//== ConstraintManager.cpp - Constraints on symbolic values -----*- 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 defined the interface to manage constraints on symbolic values.</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="ProgramState_8h.html">clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">using namespace </span>ento;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a64dd9eee812466c73ebadf776c57a841">   19</a></span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a64dd9eee812466c73ebadf776c57a841">ConstraintManager::~ConstraintManager</a>() {}</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="ConstraintManager_8cpp.html#a1799550459138bdafb21e4b474ed3be7">   21</a></span> <span class="keyword">static</span> <a class="code" href="classclang_1_1ento_1_1DefinedSVal.html">DefinedSVal</a> <a class="code" href="ConstraintManager_8cpp.html#a1799550459138bdafb21e4b474ed3be7">getLocFromSymbol</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> &<a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>,</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>                                     <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym) {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *R = State->getStateManager().getRegionManager()</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>                                                .getSymbolicRegion(Sym);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1loc_1_1MemRegionVal.html">loc::MemRegionVal</a>(R);</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> }</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#af10a2dea664ff7700e1fbafffb93426c">   28</a></span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html">ConditionTruthVal</a> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#af10a2dea664ff7700e1fbafffb93426c">ConstraintManager::checkNull</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>,</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>                                                <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym) {  </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty = Sym-><a class="code" href="classclang_1_1ento_1_1SymExpr.html#a8b17954fffe297fa90bb61e31dda7074">getType</a>();</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <a class="code" href="classclang_1_1ento_1_1DefinedSVal.html">DefinedSVal</a> V = <a class="code" href="classclang_1_1ento_1_1Loc.html#ade52f99777d7f54628cdac05e9992878">Loc::isLocType</a>(Ty) ? <a class="code" href="ConstraintManager_8cpp.html#a1799550459138bdafb21e4b474ed3be7">getLocFromSymbol</a>(State, Sym)</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>                                      : <a class="code" href="classclang_1_1ento_1_1nonloc_1_1SymbolVal.html" title="Represents symbolic expression.">nonloc::SymbolVal</a>(Sym);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a3fe4c4d6c5ad713fd7e1deeed8e990ba">ProgramStatePair</a> &<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a87dd624fe682f94d0d23ac2412dc5c6f">assumeDual</a>(State, V);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>   <span class="keywordflow">if</span> (P.first && !P.second)</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html">ConditionTruthVal</a>(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   <span class="keywordflow">if</span> (!P.first && P.second)</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html">ConditionTruthVal</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html">ConditionTruthVal</a>();</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:30 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/ConstraintManager_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,478 @@
+<!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: ConstraintManager.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_8c061bf4f1cf580e717ceaf4321c4465.html">Core</a></li><li class="navelem"><a class="el" href="dir_9dfcb8f019bd52e3ad37a9c9467cc9bb.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ConstraintManager.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ConstraintManager_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/Release+Asserts/ConstraintManager.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/Release+Asserts/ConstraintManager.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  ConstraintManager.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../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/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/CFG.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/Support/BumpVector.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/<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="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.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/StaticAnalyzer/Core/../../../include/clang/Basic/LLVM.h:</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/include/llvm/Support/Casting.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/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.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/ADT/None.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.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/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h:</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/Compiler.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/Config/llvm-config.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.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/StaticAnalyzer/Core/../../../include/clang/AST/Decl.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/StaticAnalyzer/Core/../../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.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/Support/AlignOf.h:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.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/SwapByteOrder.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/ADT/APSInt.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/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/AttrIterator.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/IdentifierTable.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/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.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/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.def:</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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.def:</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/ADT/SmallString.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/ADT/StringRef.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/StringMap.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/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/PartialDiagnostic.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticIDs.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/Core/../../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/Core/../../../include/clang/Basic/DiagnosticOptions.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/Core/../../../include/clang/Basic/DiagnosticOptions.def:</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/Core/../../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.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/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/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="l00234"></a><span class="lineno">  234</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Specifiers.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/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExternalASTSource.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/Core/../../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateName.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/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="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/Optional.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeNodes.def:</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/Core/../../../include/clang/AST/BuiltinTypes.def:</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/include/llvm/Support/raw_ostream.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/include/llvm/Support/FileSystem.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/include/llvm/ADT/OwningPtr.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/include/llvm/Support/TimeValue.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/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTVector.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/Core/../../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclGroup.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateBase.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TypeTraits.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/AnalysisContext.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/Core/../../../include/clang/Analysis/CFG.h:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/Support/BumpVector.h:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h:</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h:</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.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/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h:</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h:</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h:</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.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/Core/../../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/VersionTuple.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/include/llvm/ADT/Triple.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/Core/../../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.def:</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/Core/../../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileSystemOptions.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/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.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/include/llvm-c/Core.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/Core/../../../include/clang/Basic/AddressSpaces.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/include/llvm/ADT/SmallPtrSet.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/include/llvm/ADT/TinyPtrVector.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/Core/../../../include/clang/AST/ExprObjC.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/Core/../../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h:</div>
+<div class="line"><a name="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/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h:</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.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/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.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/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:30 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/ConstraintManager_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ConstraintManager_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,237 @@
+<!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: ConstraintManager.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_70579d56c0ce0f64b5ed66d6a11cf1c7.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_734a8767d7ca7d508f91a2e813224558.html">Core</a></li><li class="navelem"><a class="el" href="dir_bee9744499c06630fee7a102afddbe3a.html">PathSensitive</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ConstraintManager.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ConstraintManager_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">//== ConstraintManager.h - Constraints on symbolic values.-------*- 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 defined the interface to manage constraints on symbolic values.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_GR_CONSTRAINT_MANAGER_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_GR_CONSTRAINT_MANAGER_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="SVals_8h.html">clang/StaticAnalyzer/Core/PathSensitive/SVals.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="SymbolManager_8h.html">clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/Support/SaveAndRestore.h"</span></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> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="keyword">class </span>APSInt;</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> </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">namespace </span>ento {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">class </span>SubEngine;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html">   30</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html">ConditionTruthVal</a> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<bool></a> Val;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">  /// Construct a ConditionTruthVal indicating the constraint is constrained</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">  /// to either true or false, depending on the boolean value provided.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#af5bb40f84b9df270896238bd0f657fc9">   35</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#af5bb40f84b9df270896238bd0f657fc9">ConditionTruthVal</a>(<span class="keywordtype">bool</span> constraint) : Val(constraint) {}</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">  /// Construct a ConstraintVal indicating the constraint is underconstrained.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#af3e9286e4c176135384f8b02e777ea78">   38</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#af3e9286e4c176135384f8b02e777ea78" title="Construct a ConstraintVal indicating the constraint is underconstrained.">ConditionTruthVal</a>() {}</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">  /// Return true if the constraint is perfectly constrained to 'true'.</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#aadf2dff1ec3001e92583a139a40d1ffd">   41</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#aadf2dff1ec3001e92583a139a40d1ffd" title="Return true if the constraint is perfectly constrained to 'true'.">isConstrainedTrue</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>     <span class="keywordflow">return</span> Val.hasValue() && Val.getValue();</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment"></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">  /// Return true if the constraint is perfectly constrained to 'false'.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#a37d959b02ee00fdfb44a4cb9a75fce2c">   46</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#a37d959b02ee00fdfb44a4cb9a75fce2c" title="Return true if the constraint is perfectly constrained to 'false'.">isConstrainedFalse</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>     <span class="keywordflow">return</span> Val.hasValue() && !Val.getValue();</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"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">  /// Return true if the constrained is perfectly constrained.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#acee5556ec38d7a790679eb423c42f6cc">   51</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#acee5556ec38d7a790679eb423c42f6cc" title="Return true if the constrained is perfectly constrained.">isConstrained</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="keywordflow">return</span> Val.hasValue();</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="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  /// Return true if the constrained is underconstrained and we do not know</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">  /// if the constraint is true of value.</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#a8b964255551f431a3d2f1de6722a8dfd">   57</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html#a8b964255551f431a3d2f1de6722a8dfd">isUnderconstrained</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>     <span class="keywordflow">return</span> !Val.hasValue();</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>   </div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html">   62</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html">ConstraintManager</a> {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#aa1168505793ce6336dbddd842e47aa7a">   64</a></span>   <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#aa1168505793ce6336dbddd842e47aa7a">ConstraintManager</a>() : <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a7fd226a2d5745523e12ac24046cc388c">NotifyAssumeClients</a>(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>) {}</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a64dd9eee812466c73ebadf776c57a841">~ConstraintManager</a>();</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a1b26564c1556ba4b72de732b95f505b2">assume</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state,</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>                                  <a class="code" href="classclang_1_1ento_1_1DefinedSVal.html">DefinedSVal</a> Cond,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>                                  <span class="keywordtype">bool</span> Assumption) = 0;</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="classclang_1_1ento_1_1ConstraintManager.html#a3fe4c4d6c5ad713fd7e1deeed8e990ba">   71</a></span>   <span class="keyword">typedef</span> std::pair<ProgramStateRef, ProgramStateRef> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a3fe4c4d6c5ad713fd7e1deeed8e990ba">ProgramStatePair</a>;</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">  /// Returns a pair of states (StTrue, StFalse) where the given condition is</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  /// assumed to be true or false, respectively.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a87dd624fe682f94d0d23ac2412dc5c6f">   75</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a3fe4c4d6c5ad713fd7e1deeed8e990ba">ProgramStatePair</a> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a87dd624fe682f94d0d23ac2412dc5c6f">assumeDual</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>, <a class="code" href="classclang_1_1ento_1_1DefinedSVal.html">DefinedSVal</a> Cond) {</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> StTrue = <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a1b26564c1556ba4b72de732b95f505b2">assume</a>(State, Cond, <span class="keyword">true</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="comment">// If StTrue is infeasible, asserting the falseness of Cond is unnecessary</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>     <span class="comment">// because the existing constraints already establish this.</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>     <span class="keywordflow">if</span> (!StTrue) {</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="preprocessor">#ifndef __OPTIMIZE__</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="preprocessor"></span>      <span class="comment">// This check is expensive and should be disabled even in Release+Asserts</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>       <span class="comment">// builds.</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>       <span class="comment">// FIXME: __OPTIMIZE__ is a GNU extension that Clang implements but MSVC</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>       <span class="comment">// does not. Is there a good equivalent there?</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>       assert(<a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a1b26564c1556ba4b72de732b95f505b2">assume</a>(State, Cond, <span class="keyword">false</span>) && <span class="stringliteral">"System is over constrained."</span>);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="preprocessor"></span>      <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a3fe4c4d6c5ad713fd7e1deeed8e990ba">ProgramStatePair</a>((<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a>)<a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, State);</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>     <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> StFalse = <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a1b26564c1556ba4b72de732b95f505b2">assume</a>(State, Cond, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     <span class="keywordflow">if</span> (!StFalse) {</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>       <span class="comment">// We are careful to return the original state, /not/ StTrue,</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>       <span class="comment">// because we want to avoid having callers generate a new node</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>       <span class="comment">// in the ExplodedGraph.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a3fe4c4d6c5ad713fd7e1deeed8e990ba">ProgramStatePair</a>(State, (<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a>)<a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</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> </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a3fe4c4d6c5ad713fd7e1deeed8e990ba">ProgramStatePair</a>(StTrue, StFalse);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">  /// \brief If a symbol is perfectly constrained to a constant, attempt</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">  /// to return the concrete value.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">  /// Note that a ConstraintManager is not obligated to return a concretized</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">  /// value for a symbol, even if it is perfectly constrained.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#aa491b614fa90854beb2e7c328505a527">  107</a></span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> llvm::APSInt* <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#aa491b614fa90854beb2e7c328505a527" title="If a symbol is perfectly constrained to a constant, attempt to return the concrete value...">getSymVal</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state,</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>                                         <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> sym)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>     <span class="keywordflow">return</span> 0;</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="keyword">virtual</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a7d81d238d6990414f71004b704854b8f">removeDeadBindings</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state,</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>                                                  <a class="code" href="classclang_1_1ento_1_1SymbolReaper.html" title="A class responsible for cleaning up unused symbols.">SymbolReaper</a>& SymReaper) = 0;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#ab770a4dbf1e59f83e05d004c2ec7d338">print</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state,</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>                      raw_ostream &Out,</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>                      <span class="keyword">const</span> <span class="keywordtype">char</span>* nl,</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>                      <span class="keyword">const</span> <span class="keywordtype">char</span> *sep) = 0;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#ae82f68a01a9ae057d62512d4c495e98a">  120</a></span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#ae82f68a01a9ae057d62512d4c495e98a">EndPath</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state) {}</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">  /// Convenience method to query the state to see if a symbol is null or</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">  /// not null, or if neither assumption can be made.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a700c8e50a45a7df52954a2d79ad67278">  124</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html">ConditionTruthVal</a> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a700c8e50a45a7df52954a2d79ad67278">isNull</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>, <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym) {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>     <a class="code" href="structllvm_1_1SaveAndRestore.html">SaveAndRestore<bool></a> DisableNotify(<a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a7fd226a2d5745523e12ac24046cc388c">NotifyAssumeClients</a>, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#af10a2dea664ff7700e1fbafffb93426c">checkNull</a>(State, Sym);</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> </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="keyword">protected</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">  /// A flag to indicate that clients should be notified of assumptions.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">  /// By default this is the case, but sometimes this needs to be restricted</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">  /// to avoid infinite recursions within the ConstraintManager.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">  /// Note that this flag allows the ConstraintManager to be re-entrant,</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">  /// but not thread-safe.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a7fd226a2d5745523e12ac24046cc388c">  137</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a7fd226a2d5745523e12ac24046cc388c">NotifyAssumeClients</a>;</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">  /// canReasonAbout - Not all ConstraintManagers can accurately reason about</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">  ///  all SVal values.  This method returns true if the ConstraintManager can</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">  ///  reasonably handle a given SVal value.  This is typically queried by</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  ///  ExprEngine to determine if the value should be replaced with a</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">  ///  conjured symbolic value in order to recover some precision.</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#a536c8474020472e459190c6bcccacfa4">canReasonAbout</a>(<a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>) <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment"></span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">  /// Returns whether or not a symbol is known to be null ("true"), known to be</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">  /// non-null ("false"), or may be either ("underconstrained"). </span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ento_1_1ConditionTruthVal.html">ConditionTruthVal</a> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html#af10a2dea664ff7700e1fbafffb93426c">checkNull</a>(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>, <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym);</div>
+<div class="line"><a name="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> <a class="code" href="classclang_1_1ento_1_1ConstraintManager.html">ConstraintManager</a>* <a class="code" href="namespaceclang_1_1ento.html#a876e80d2a3ea8bc84c5f5e1e8b641e72">CreateRangeConstraintManager</a>(<a class="code" href="classclang_1_1ento_1_1ProgramStateManager.html">ProgramStateManager</a>& statemgr,</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>                                                 <a class="code" href="classclang_1_1ento_1_1SubEngine.html">SubEngine</a> *subengine);</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">// end GR namespace</span></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">// end clang namespace</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="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:30 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/Consumed_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Consumed_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Consumed_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Consumed_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1612 @@
+<!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: Consumed.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_c63c305ced188fe7fa423548af4807d3.html">Analysis</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Consumed.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Consumed_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">//===- Consumed.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">// A intra-procedural analysis for checking consumed properties.  This is based,</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// in part, on research on linear types.</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="ASTContext_8h.html" title="Defines the clang::ASTContext interface.">clang/AST/ASTContext.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="Attr_8h.html">clang/AST/Attr.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</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="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="RecursiveASTVisitor_8h.html">clang/AST/RecursiveASTVisitor.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="StmtVisitor_8h.html">clang/AST/StmtVisitor.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="StmtCXX_8h.html">clang/AST/StmtCXX.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="Type_8h.html">clang/AST/Type.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="PostOrderCFGView_8h.html">clang/Analysis/Analyses/PostOrderCFGView.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="AnalysisContext_8h.html">clang/Analysis/AnalysisContext.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="CFG_8h.html">clang/Analysis/CFG.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="Consumed_8h.html">clang/Analysis/Analyses/Consumed.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "<a class="code" href="OperatorKinds_8h.html" title="Defines an enumeration for C++ overloaded operators.">clang/Basic/OperatorKinds.h</a>"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "<a class="code" href="SourceLocation_8h.html" title="Defines the clang::SourceLocation class and associated facilities.">clang/Basic/SourceLocation.h</a>"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "llvm/Support/Compiler.h"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</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="comment">// TODO: Adjust states of args to constructors in the same way that arguments to</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">//       function calls are handled.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">// TODO: Use information from tests in for- and while-loop conditional.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">// TODO: Add notes about the actual and expected state for </span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">// TODO: Correctly identify unreachable blocks when chaining boolean operators.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">// TODO: Adjust the parser and AttributesList class to support lists of</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">//       identifiers.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">// TODO: Warn about unreachable code.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">// TODO: Switch to using a bitmap to track unreachable blocks.</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">// TODO: Handle variable definitions, e.g. bool valid = x.isValid();</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">//       if (valid) ...; (Deferred)</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">// TODO: Take notes on state transitions to provide better warning messages.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">//       (Deferred)</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">// TODO: Test nested conditionals: A) Checking the same value multiple times,</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">//       and 2) Checking different values. (Deferred)</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">   51</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="keyword">using namespace </span>consumed;</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="comment">// Key method definition</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedWarningsHandlerBase.html#ad199815628c23a5dc6570e5c4176c90f">   55</a></span> <a class="code" href="classclang_1_1consumed_1_1ConsumedWarningsHandlerBase.html#ad199815628c23a5dc6570e5c4176c90f">ConsumedWarningsHandlerBase::~ConsumedWarningsHandlerBase</a>() {}</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a91374a6f6b145a4e6fea0f4dc1a25e7d">   57</a></span> <span class="keyword">static</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="Consumed_8cpp.html#a91374a6f6b145a4e6fea0f4dc1a25e7d">getFirstStmtLoc</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *Block) {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   <span class="comment">// Find the source location of the first statement in the block, if the block</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <span class="comment">// is not empty.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html#a464348f33435ca9aa27de9017f6dee88">CFGBlock::const_iterator</a> BI = Block-><a class="code" href="classclang_1_1CFGBlock.html#a6f23244410ba39354a8ce965328a7155">begin</a>(), BE = Block-><a class="code" href="classclang_1_1CFGBlock.html#acaa9a29bf0b724c80860bee0f663a07e">end</a>();</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>        BI != BE; ++BI) {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>     <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Optional.html">Optional<CFGStmt></a> CS = BI->getAs<<a class="code" href="classclang_1_1CFGStmt.html">CFGStmt</a>>())</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>       <span class="keywordflow">return</span> CS->getStmt()->getLocStart();</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   }</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   <span class="comment">// Block is empty.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="comment">// If we have one successor, return the first statement in that block</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="keywordflow">if</span> (Block-><a class="code" href="classclang_1_1CFGBlock.html#a2b57cc985337076f6072ca63ceae400e">succ_size</a>() == 1 && *Block-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>())</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>     <span class="keywordflow">return</span> <a class="code" href="Consumed_8cpp.html#a91374a6f6b145a4e6fea0f4dc1a25e7d">getFirstStmtLoc</a>(*Block-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>());</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>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>();</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> }</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#acb11e07ef748998d59cf47afc61ff24f">   74</a></span> <span class="keyword">static</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="Consumed_8cpp.html#acb11e07ef748998d59cf47afc61ff24f">getLastStmtLoc</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *Block) {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   <span class="comment">// Find the source location of the last statement in the block, if the block</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="comment">// is not empty.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *StmtNode = Block-><a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>()) {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>     <span class="keywordflow">return</span> StmtNode->getLocStart();</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGElement.html" title="CFGElement - Represents a top-level expression in a basic block.">CFGBlock::const_reverse_iterator</a> BI = Block-><a class="code" href="classclang_1_1CFGBlock.html#a28d1c9e2bcd34217a4debc899ebb8a58">rbegin</a>(),</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>          BE = Block-><a class="code" href="classclang_1_1CFGBlock.html#a3f50816a051e41aeddd0cdacaaa5f1b4">rend</a>(); BI != BE; ++BI) {</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>       <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Optional.html">Optional<CFGStmt></a> CS = BI->getAs<<a class="code" href="classclang_1_1CFGStmt.html">CFGStmt</a>>())</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>         <span class="keywordflow">return</span> CS->getStmt()->getLocStart();</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>     }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   }</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>   <span class="comment">// If we have one successor, return the first statement in that block</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</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="l00089"></a><span class="lineno">   89</span>   <span class="keywordflow">if</span> (Block-><a class="code" href="classclang_1_1CFGBlock.html#a2b57cc985337076f6072ca63ceae400e">succ_size</a>() == 1 && *Block-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>())</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>     Loc = <a class="code" href="Consumed_8cpp.html#a91374a6f6b145a4e6fea0f4dc1a25e7d">getFirstStmtLoc</a>(*Block-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>());</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>())</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     <span class="keywordflow">return</span> Loc;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="comment">// If we have one predecessor, return the last statement in that block</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <span class="keywordflow">if</span> (Block-><a class="code" href="classclang_1_1CFGBlock.html#aa3ac7df9393571091545e634ab365c41">pred_size</a>() == 1 && *Block-><a class="code" href="classclang_1_1CFGBlock.html#ac0001ac14b86768c641f769c5fb1f4c6">pred_begin</a>())</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>     <span class="keywordflow">return</span> <a class="code" href="Consumed_8cpp.html#acb11e07ef748998d59cf47afc61ff24f">getLastStmtLoc</a>(*Block-><a class="code" href="classclang_1_1CFGBlock.html#ac0001ac14b86768c641f769c5fb1f4c6">pred_begin</a>());</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   <span class="keywordflow">return</span> Loc;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> }</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">  101</a></span> <span class="keyword">static</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(<a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>) {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <span class="keywordflow">switch</span> (State) {</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>:</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>:</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>:</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>:</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>;</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>   llvm_unreachable(<span class="stringliteral">"invalid enum"</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> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a1588702d2b102240f1d01c708558a658">  115</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Consumed_8cpp.html#a1588702d2b102240f1d01c708558a658">isCallableInState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallableWhenAttr.html">CallableWhenAttr</a> *CWAttr,</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>                               <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>) {</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <a class="code" href="classclang_1_1CallableWhenAttr.html#a7ad9fdf33fcf9ef8ec0c41583853ef7c">CallableWhenAttr::callableState_iterator</a> I = CWAttr-><a class="code" href="classclang_1_1CallableWhenAttr.html#a67888f6b0e27da077744770fb280f195">callableState_begin</a>(),</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>                                            E = CWAttr-><a class="code" href="classclang_1_1CallableWhenAttr.html#aa3ab7f5a4b4552364ceb93bf31be5255">callableState_end</a>();</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>   </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   <span class="keywordflow">for</span> (; I != E; ++I) {</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>     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> MappedAttrState = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>     <span class="keywordflow">switch</span> (*I) {</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CallableWhenAttr.html#a7ad9fdf33fcf9ef8ec0c41583853ef7ca2ce64771e9e81c1dc975451f90079ec5">CallableWhenAttr::Unknown</a>:</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>       MappedAttrState = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>       <span class="keywordflow">break</span>;</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">case</span> <a class="code" href="classclang_1_1CallableWhenAttr.html#a7ad9fdf33fcf9ef8ec0c41583853ef7ca1e3be037ef8837788a072d5a36ec8532">CallableWhenAttr::Unconsumed</a>:</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>       MappedAttrState = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>       </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CallableWhenAttr.html#a7ad9fdf33fcf9ef8ec0c41583853ef7ca49a904d200baace23dadae114bf3a546">CallableWhenAttr::Consumed</a>:</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>       MappedAttrState = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>     }</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>     <span class="keywordflow">if</span> (MappedAttrState == State)</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>   }</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>   <span class="keywordflow">return</span> <span class="keyword">false</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> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">  146</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> &QT) {</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="keywordflow">if</span> (QT-><a class="code" href="classclang_1_1Type.html#a1c0038a55083ee0a292a020038ee04d8">isPointerType</a>() || QT-><a class="code" href="classclang_1_1Type.html#ab2b860560d2ac12cd365aa09b143d195">isReferenceType</a>())</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>     <span class="keywordflow">return</span> <span class="keyword">false</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">  150</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD = QT-><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="l00151"></a><span class="lineno">  151</span>     <span class="keywordflow">return</span> RD->hasAttr<<a class="code" href="classclang_1_1ConsumableAttr.html">ConsumableAttr</a>>();</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> }</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#afa5aa7619bd8554dcf3f3ad6948ef892">  156</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Consumed_8cpp.html#afa5aa7619bd8554dcf3f3ad6948ef892">isKnownState</a>(<a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>) {</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>   <span class="keywordflow">switch</span> (State) {</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>:</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>:</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>:</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>   }</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>   llvm_unreachable(<span class="stringliteral">"invalid enum"</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> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a19c9acd4548062f758138c2e78c6d6a8">  168</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Consumed_8cpp.html#a19c9acd4548062f758138c2e78c6d6a8">isRValueRefish</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> ParamType) {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   <span class="keywordflow">return</span> ParamType-><a class="code" href="classclang_1_1Type.html#a5f92e15531a30a074167893767c51944">isRValueReferenceType</a>() ||</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>         (ParamType-><a class="code" href="classclang_1_1Type.html#a4986b78356f1d0fa9d0f3c2244a9f9c9">isLValueReferenceType</a>() &&</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>          !cast<LValueReferenceType>(</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>            ParamType.<a class="code" href="classclang_1_1QualType.html#abae06108b779ed32a4dc18fe8802fd6e">getCanonicalType</a>())->isSpelledAsLValue());</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"><a class="code" href="Consumed_8cpp.html#a7f546231e2feeca18406b57a1db0e2fe">  175</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Consumed_8cpp.html#a7f546231e2feeca18406b57a1db0e2fe">isTestingFunction</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FunDecl) {</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   <span class="keywordflow">return</span> FunDecl-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1TestTypestateAttr.html">TestTypestateAttr</a>>();</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> }</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a7f7395e383f8537c07787fa2512cc587">  179</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Consumed_8cpp.html#a7f7395e383f8537c07787fa2512cc587">isValueType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> ParamType) {</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   <span class="keywordflow">return</span> !(ParamType-><a class="code" href="classclang_1_1Type.html#a1c0038a55083ee0a292a020038ee04d8">isPointerType</a>() || ParamType-><a class="code" href="classclang_1_1Type.html#ab2b860560d2ac12cd365aa09b143d195">isReferenceType</a>());</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> }</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#ab2184f58809f6086582dbfe9fe33425d">  183</a></span> <span class="keyword">static</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Consumed_8cpp.html#ab2184f58809f6086582dbfe9fe33425d">mapConsumableAttrState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> QT) {</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   assert(<a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(QT));</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_1ConsumableAttr.html">ConsumableAttr</a> *CAttr =</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>       QT-><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>()-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1ConsumableAttr.html">ConsumableAttr</a>>();</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   <span class="keywordflow">switch</span> (CAttr-><a class="code" href="classclang_1_1ConsumableAttr.html#a62be7aa52caae9e8ac4d4e585929ed50">getDefaultState</a>()) {</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ConsumableAttr.html#ae860076c6c8b3f7df0ef200aa458b2dca173b375ba95958bc8a0c549f64a91bfc">ConsumableAttr::Unknown</a>:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>;</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ConsumableAttr.html#ae860076c6c8b3f7df0ef200aa458b2dca7ee074e6ec6609c786f34f67cd494e25">ConsumableAttr::Unconsumed</a>:</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ConsumableAttr.html#ae860076c6c8b3f7df0ef200aa458b2dcac1ef3d09a5f748bfafaaad680203a963">ConsumableAttr::Consumed</a>:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>;</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>   llvm_unreachable(<span class="stringliteral">"invalid enum"</span>);</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> }</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="keyword">static</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a></div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a1a3f7cfbef882b89dbf35a623eefaae3">  201</a></span> <a class="code" href="Consumed_8cpp.html#a1a3f7cfbef882b89dbf35a623eefaae3">mapParamTypestateAttrState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ParamTypestateAttr.html">ParamTypestateAttr</a> *PTAttr) {</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>   <span class="keywordflow">switch</span> (PTAttr-><a class="code" href="classclang_1_1ParamTypestateAttr.html#a6c43a257a92e71305f16890d7639e875">getParamState</a>()) {</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ParamTypestateAttr.html#a59126c1563c69b7a754b0be9e86f05bca6733473aea37d7e357935983646c25b5">ParamTypestateAttr::Unknown</a>:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>;</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ParamTypestateAttr.html#a59126c1563c69b7a754b0be9e86f05bcaeef7c10fe9ccddcfa5fcf58517d6103e">ParamTypestateAttr::Unconsumed</a>:</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ParamTypestateAttr.html#a59126c1563c69b7a754b0be9e86f05bca3d350a441263d4ec38b7fe91dd9d9478">ParamTypestateAttr::Consumed</a>:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>;</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>   llvm_unreachable(<span class="stringliteral">"invalid_enum"</span>);</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> }</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="keyword">static</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a></div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a247a4fece754c90145cf9f29b9f252bb">  214</a></span> <a class="code" href="Consumed_8cpp.html#a247a4fece754c90145cf9f29b9f252bb">mapReturnTypestateAttrState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a> *RTSAttr) {</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   <span class="keywordflow">switch</span> (RTSAttr-><a class="code" href="classclang_1_1ReturnTypestateAttr.html#aefd9714e2dc958279ead8f13f0173a7d">getState</a>()) {</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ReturnTypestateAttr.html#a6b263712172c9db42f2257e2a40aab6ea022cce96c5d5e1b03cfaaccd69b1b889">ReturnTypestateAttr::Unknown</a>:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ReturnTypestateAttr.html#a6b263712172c9db42f2257e2a40aab6eaf19b64c24557208a67bfa1f1bcc05758">ReturnTypestateAttr::Unconsumed</a>:</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ReturnTypestateAttr.html#a6b263712172c9db42f2257e2a40aab6ea9044e30b947210445618d0f5648ba50d">ReturnTypestateAttr::Consumed</a>:</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>;</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>   llvm_unreachable(<span class="stringliteral">"invalid enum"</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> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#ac6a77ab708a03d51a0b7274fb55a8fe1">  226</a></span> <span class="keyword">static</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Consumed_8cpp.html#ac6a77ab708a03d51a0b7274fb55a8fe1">mapSetTypestateAttrState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a> *STAttr) {</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   <span class="keywordflow">switch</span> (STAttr-><a class="code" href="classclang_1_1SetTypestateAttr.html#a88a861ee65e40f5990a26b313b1875ae">getNewState</a>()) {</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1SetTypestateAttr.html#a75bf1699caad729299c8e44058f3274faff3a447ec43b3b6c15cdc1ff95e7e33b">SetTypestateAttr::Unknown</a>:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1SetTypestateAttr.html#a75bf1699caad729299c8e44058f3274fa987e46c41344bbb6b56e7c1a10152055">SetTypestateAttr::Unconsumed</a>:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1SetTypestateAttr.html#a75bf1699caad729299c8e44058f3274fa21ee5852c2c3bfc6c0fe8ea45cfd44fd">SetTypestateAttr::Consumed</a>:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   }</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   llvm_unreachable(<span class="stringliteral">"invalid_enum"</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> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">  238</a></span> <span class="keyword">static</span> StringRef <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(<a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>   <span class="keywordflow">switch</span> (State) {</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">consumed::CS_None</a>:</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     <span class="keywordflow">return</span> <span class="stringliteral">"none"</span>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>   </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">consumed::CS_Unknown</a>:</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>     <span class="keywordflow">return</span> <span class="stringliteral">"unknown"</span>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>   </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">consumed::CS_Unconsumed</a>:</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     <span class="keywordflow">return</span> <span class="stringliteral">"unconsumed"</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="keywordflow">case</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">consumed::CS_Consumed</a>:</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>     <span class="keywordflow">return</span> <span class="stringliteral">"consumed"</span>;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>   }</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>   llvm_unreachable(<span class="stringliteral">"invalid enum"</span>);</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> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"><a class="code" href="Consumed_8cpp.html#a2c6f56d49ba2c3ef5323f899c7a28173">  255</a></span> <span class="keyword">static</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Consumed_8cpp.html#a2c6f56d49ba2c3ef5323f899c7a28173">testsFor</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FunDecl) {</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   assert(<a class="code" href="Consumed_8cpp.html#a7f546231e2feeca18406b57a1db0e2fe">isTestingFunction</a>(FunDecl));</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>   <span class="keywordflow">switch</span> (FunDecl-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1TestTypestateAttr.html">TestTypestateAttr</a>>()-><a class="code" href="classclang_1_1TestTypestateAttr.html#af656322d5db01621c3d6743c3913f21f">getTestState</a>()) {</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1TestTypestateAttr.html#a0f4fd496eab1c61d0bed7f07010a171aa38f943311e971573c21c9e3ca07a6cce">TestTypestateAttr::Unconsumed</a>:</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a59e38ff87930b308b2a313b265560d3f">CS_Unconsumed</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1TestTypestateAttr.html#a0f4fd496eab1c61d0bed7f07010a171aa28843d242415582d8affe9ba79a272b2">TestTypestateAttr::Consumed</a>:</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">CS_Consumed</a>;</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>   llvm_unreachable(<span class="stringliteral">"invalid enum"</span>);</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> }</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="keyword">struct </span>VarTestResult {</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var;</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> TestsFor;</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> } <span class="comment">// end anonymous::VarTestResult</span></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> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="keyword">namespace </span>consumed {</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0">  276</a></span> <span class="keyword">enum</span> <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0">EffectiveOp</a> {</div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a4b901dff3c414c3bbd39ebdffe83262b">  277</a></span>   <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a4b901dff3c414c3bbd39ebdffe83262b">EO_And</a>,</div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a3fd10daa40826d305713ce20195225d2">  278</a></span>   <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a3fd10daa40826d305713ce20195225d2">EO_Or</a></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> };</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">  281</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> {</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>   <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>     IT_None,</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     IT_State,</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>     IT_VarTest,</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>     IT_BinTest,</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>     IT_Var,</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>     IT_Tmp</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>   } InfoType;</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="keyword">struct </span>BinTestTy {</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</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> *Source;</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>     <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0">EffectiveOp</a> EOp;</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>     VarTestResult LTest;</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>     VarTestResult RTest;</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>   </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>   <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00299"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a710ecb188186b9ba394f77b018ded0cc">  299</a></span>     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a710ecb188186b9ba394f77b018ded0cc">State</a>;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ae2ac80c9ed3e81f88c7954ebaa3af0d0">  300</a></span>     VarTestResult <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ae2ac80c9ed3e81f88c7954ebaa3af0d0">VarTest</a>;</div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ae5048d31ea53169dcce7481cae4edd94">  301</a></span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ae5048d31ea53169dcce7481cae4edd94">Var</a>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a0cd77da4f61bd381ad3d183cb1346f82">  302</a></span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a0cd77da4f61bd381ad3d183cb1346f82">Tmp</a>;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ae45c7fdbfd7079db2f94a4af0e56710e">  303</a></span>     BinTestTy <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ae45c7fdbfd7079db2f94a4af0e56710e">BinTest</a>;</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>   };</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>   </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00307"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a0908f5f7b8f9d9077684c05de6291e6e">  307</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a0908f5f7b8f9d9077684c05de6291e6e">PropagationInfo</a>() : InfoType(IT_None) {}</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>   </div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a0d9bd230180ecb40e0422531e765f817">  309</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(<span class="keyword">const</span> VarTestResult &VarTest)</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>     : InfoType(IT_VarTest), VarTest(VarTest) {}</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>   </div>
+<div class="line"><a name="l00312"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a8eacb416ca4686b078061d71849a9b25">  312</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> TestsFor)</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>     : InfoType(IT_VarTest) {</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>     VarTest.Var      = Var;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>     VarTest.TestsFor = TestsFor;</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>   </div>
+<div class="line"><a name="l00319"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a089e117f1bbc977b592b8a26753ee087">  319</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(<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> *Source, <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0">EffectiveOp</a> EOp,</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>                   <span class="keyword">const</span> VarTestResult &LTest, <span class="keyword">const</span> VarTestResult &RTest)</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>     : InfoType(IT_BinTest) {</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>     BinTest.Source  = Source;</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>     BinTest.EOp     = EOp;</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>     BinTest.LTest   = LTest;</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>     BinTest.RTest   = RTest;</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>   }</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>   </div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a21cf232f20205b0a738b53cc94264aca">  329</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(<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> *Source, <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0">EffectiveOp</a> EOp,</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>                   <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *LVar, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> LTestsFor,</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>                   <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *RVar, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> RTestsFor)</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>     : InfoType(IT_BinTest) {</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>     BinTest.Source         = Source;</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>     BinTest.EOp            = EOp;</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>     BinTest.LTest.Var      = LVar;</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     BinTest.LTest.TestsFor = LTestsFor;</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     BinTest.RTest.Var      = RVar;</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>     BinTest.RTest.TestsFor = RTestsFor;</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>   </div>
+<div class="line"><a name="l00342"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a661f184f21633d697f9fb4a47bb641da">  342</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(<a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>)</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>     : InfoType(IT_State), State(State) {}</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>   </div>
+<div class="line"><a name="l00345"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a6fb7f8ed87108cfd5ce37690e553c435">  345</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a6fb7f8ed87108cfd5ce37690e553c435">PropagationInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var) : InfoType(IT_Var), Var(Var) {}</div>
+<div class="line"><a name="l00346"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a8ee4387da03db162d53bdc1bc01eedf8">  346</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *Tmp)</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>     : InfoType(IT_Tmp), Tmp(Tmp) {}</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>   </div>
+<div class="line"><a name="l00349"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a234ae2539e59613957b69c027ee182dc">  349</a></span>   <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> & <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a234ae2539e59613957b69c027ee182dc">getState</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>     assert(InfoType == IT_State);</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>     <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</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>   </div>
+<div class="line"><a name="l00354"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa7e887a8c32215b7a4d9a270e1359117">  354</a></span>   <span class="keyword">const</span> VarTestResult & <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa7e887a8c32215b7a4d9a270e1359117">getVarTest</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     assert(InfoType == IT_VarTest);</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>     <span class="keywordflow">return</span> VarTest;</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>   </div>
+<div class="line"><a name="l00359"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ac70f3c4c23c862c4679ad8d94dee9cfb">  359</a></span>   <span class="keyword">const</span> VarTestResult & <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ac70f3c4c23c862c4679ad8d94dee9cfb">getLTest</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>     assert(InfoType == IT_BinTest);</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     <span class="keywordflow">return</span> BinTest.LTest;</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>   </div>
+<div class="line"><a name="l00364"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a17e7c795a3e9775d9d8bb73a24bb2db1">  364</a></span>   <span class="keyword">const</span> VarTestResult & <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a17e7c795a3e9775d9d8bb73a24bb2db1">getRTest</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>     assert(InfoType == IT_BinTest);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>     <span class="keywordflow">return</span> BinTest.RTest;</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>   </div>
+<div class="line"><a name="l00369"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">  369</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> * <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>     assert(InfoType == IT_Var);</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>     <span class="keywordflow">return</span> Var;</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>   </div>
+<div class="line"><a name="l00374"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a176f04368615a598080305e90142ac68">  374</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> * <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a176f04368615a598080305e90142ac68">getTmp</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>     assert(InfoType == IT_Tmp);</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>     <span class="keywordflow">return</span> Tmp;</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>   }</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>   </div>
+<div class="line"><a name="l00379"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a78084f6732a32e6ba6ec6daf005a0e23">  379</a></span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a78084f6732a32e6ba6ec6daf005a0e23">getAsState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *StateMap)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>     assert(isVar() || isTmp() || isState());</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>     <span class="keywordflow">if</span> (isVar())</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>       <span class="keywordflow">return</span> StateMap-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a63f147f2784b3cf9958708dac94050cc" title="Get the consumed state of a given variable.">getState</a>(Var);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isTmp())</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>       <span class="keywordflow">return</span> StateMap-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a63f147f2784b3cf9958708dac94050cc" title="Get the consumed state of a given variable.">getState</a>(Tmp);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isState())</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>       <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>       <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>   }</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>   </div>
+<div class="line"><a name="l00392"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a1e8b977c5ed03bf837ae7c542b314154">  392</a></span>   <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0">EffectiveOp</a> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a1e8b977c5ed03bf837ae7c542b314154">testEffectiveOp</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>     assert(InfoType == IT_BinTest);</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>     <span class="keywordflow">return</span> BinTest.EOp;</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>   </div>
+<div class="line"><a name="l00397"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a1a3e5ad8c67ece8f311cafe256acf098">  397</a></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> * <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a1a3e5ad8c67ece8f311cafe256acf098">testSourceNode</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>     assert(InfoType == IT_BinTest);</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>     <span class="keywordflow">return</span> BinTest.Source;</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>   </div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a4461220242d3812ecbfe6a4335874801">  402</a></span>   <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a4461220242d3812ecbfe6a4335874801">isValid</a>()<span class="keyword">   const </span>{ <span class="keywordflow">return</span> InfoType != IT_None;    }</div>
+<div class="line"><a name="l00403"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ab8b6cf20d53800401a6701b4ea098951">  403</a></span>   <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ab8b6cf20d53800401a6701b4ea098951">isState</a>()<span class="keyword">   const </span>{ <span class="keywordflow">return</span> InfoType == IT_State;   }</div>
+<div class="line"><a name="l00404"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa9d1b66b38d088dc436bdb2c941e4b32">  404</a></span>   <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa9d1b66b38d088dc436bdb2c941e4b32">isVarTest</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> InfoType == IT_VarTest; }</div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aca58970de85948d42e2f9d3eafdf552c">  405</a></span>   <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aca58970de85948d42e2f9d3eafdf552c">isBinTest</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> InfoType == IT_BinTest; }</div>
+<div class="line"><a name="l00406"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a607b7642f9387b7cf600c63b76b74a98">  406</a></span>   <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a607b7642f9387b7cf600c63b76b74a98">isVar</a>()<span class="keyword">     const </span>{ <span class="keywordflow">return</span> InfoType == IT_Var;     }</div>
+<div class="line"><a name="l00407"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a01bbd567571e90e485e7970def427ee1">  407</a></span>   <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a01bbd567571e90e485e7970def427ee1">isTmp</a>()<span class="keyword">     const </span>{ <span class="keywordflow">return</span> InfoType == IT_Tmp;     }</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>   </div>
+<div class="line"><a name="l00409"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a40dda8223fc1eabad0ed444878902bed">  409</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a40dda8223fc1eabad0ed444878902bed">isTest</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>     <span class="keywordflow">return</span> InfoType == IT_VarTest || InfoType == IT_BinTest;</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   }</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>   </div>
+<div class="line"><a name="l00413"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a56243d670931e4fea83037ef238fca64">  413</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a56243d670931e4fea83037ef238fca64">isPointerToValue</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>     <span class="keywordflow">return</span> InfoType == IT_Var || InfoType == IT_Tmp;</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>   </div>
+<div class="line"><a name="l00417"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a0099be63343cc3b4e57627fff29a66b0">  417</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a0099be63343cc3b4e57627fff29a66b0">invertTest</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>     assert(InfoType == IT_VarTest || InfoType == IT_BinTest);</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>     <span class="keywordflow">if</span> (InfoType == IT_VarTest) {</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(VarTest.Var,</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>                              <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(VarTest.TestsFor));</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>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (InfoType == IT_BinTest) {</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(BinTest.Source,</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>         BinTest.EOp == <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a4b901dff3c414c3bbd39ebdffe83262b">EO_And</a> ? <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a3fd10daa40826d305713ce20195225d2">EO_Or</a> : <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a4b901dff3c414c3bbd39ebdffe83262b">EO_And</a>,</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>         BinTest.LTest.Var, <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(BinTest.LTest.TestsFor),</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>         BinTest.RTest.Var, <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(BinTest.RTest.TestsFor));</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>();</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>     }</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>   }</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> };</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"><a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">  436</a></span> <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(<a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *StateMap, <span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> &PInfo,</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>                     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>) {</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>   assert(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a607b7642f9387b7cf600c63b76b74a98">isVar</a>() || PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a01bbd567571e90e485e7970def427ee1">isTmp</a>());</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>   <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a607b7642f9387b7cf600c63b76b74a98">isVar</a>())</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>     StateMap-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">setState</a>(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>(), <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>);</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>     StateMap-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">setState</a>(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a176f04368615a598080305e90142ac68">getTmp</a>(), <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>);</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> }</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html">  447</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html">ConsumedStmtVisitor</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ConstStmtVisitor.html">ConstStmtVisitor</a><ConsumedStmtVisitor> {</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>   </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>   <span class="keyword">typedef</span> llvm::DenseMap<const Stmt *, PropagationInfo> MapType;</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>   <span class="keyword">typedef</span> std::pair<const Stmt *, PropagationInfo> PairType;</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>   <span class="keyword">typedef</span> MapType::iterator InfoEntry;</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>   <span class="keyword">typedef</span> MapType::const_iterator ConstInfoEntry;</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>   <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedAnalyzer.html" title="A class that handles the analysis of uniqueness violations.">ConsumedAnalyzer</a> &Analyzer;</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *StateMap;</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   MapType PropagationMap;</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>   <span class="keywordtype">void</span> forwardInfo(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *From, <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *To);</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>   <span class="keywordtype">bool</span> isLikeMoveAssignment(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MethodDecl);</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>   <span class="keywordtype">void</span> propagateReturnType(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Call, <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *Fun,</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>                            <a class="code" href="classclang_1_1QualType.html">QualType</a> ReturnType);</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> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>   <span class="keywordtype">void</span> checkCallability(<span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> &PInfo,</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>                         <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FunDecl,</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</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> BlameLoc);</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>   </div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>   <span class="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> *BinOp);</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>   <span class="keywordtype">void</span> VisitCallExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *Call);</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>   <span class="keywordtype">void</span> VisitCastExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1CastExpr.html">CastExpr</a> *Cast);</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   <span class="keywordtype">void</span> VisitCXXBindTemporaryExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *Temp);</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>   <span class="keywordtype">void</span> VisitCXXConstructExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a> *Call);</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>   <span class="keywordtype">void</span> VisitCXXMemberCallExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMemberCallExpr.html">CXXMemberCallExpr</a> *Call);</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>   <span class="keywordtype">void</span> VisitCXXOperatorCallExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXOperatorCallExpr.html" title="A call to an overloaded operator written using operator syntax.">CXXOperatorCallExpr</a> *Call);</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>   <span class="keywordtype">void</span> VisitDeclRefExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *DeclRef);</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>   <span class="keywordtype">void</span> VisitDeclStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *DelcS);</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>   <span class="keywordtype">void</span> VisitMaterializeTemporaryExpr(<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> *Temp);</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>   <span class="keywordtype">void</span> VisitMemberExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1MemberExpr.html">MemberExpr</a> *MExpr);</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>   <span class="keywordtype">void</span> VisitParmVarDecl(<span class="keyword">const</span> <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *<a class="code" href="SemaOverload_8cpp.html#af465899bf43044df83229078154bc2ed">Param</a>);</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>   <span class="keywordtype">void</span> VisitReturnStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ReturnStmt.html">ReturnStmt</a> *Ret);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>   <span class="keywordtype">void</span> VisitUnaryOperator(<span class="keyword">const</span> <a class="code" href="classclang_1_1UnaryOperator.html">UnaryOperator</a> *UOp);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>   <span class="keywordtype">void</span> VisitVarDecl(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> </div>
+<div class="line"><a name="l00484"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a1e4f15cdfbd9aa9979d25e1b3a933a1f">  484</a></span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html">ConsumedStmtVisitor</a>(<a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC, <a class="code" href="classclang_1_1consumed_1_1ConsumedAnalyzer.html" title="A class that handles the analysis of uniqueness violations.">ConsumedAnalyzer</a> &Analyzer,</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>                       <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *StateMap)</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>       : AC(AC), Analyzer(Analyzer), StateMap(StateMap) {}</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   </div>
+<div class="line"><a name="l00488"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a98bcb092acfcc235af7c034ca4c03150">  488</a></span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a98bcb092acfcc235af7c034ca4c03150">getInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *StmtNode)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>     ConstInfoEntry Entry = PropagationMap.find(StmtNode);</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="keywordflow">if</span> (Entry != PropagationMap.end())</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>       <span class="keywordflow">return</span> Entry->second;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>();</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>   }</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>   </div>
+<div class="line"><a name="l00497"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a59c278b325bbbcfdad7f9533b0f352d6">  497</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a59c278b325bbbcfdad7f9533b0f352d6">reset</a>(<a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *NewStateMap) {</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>     StateMap = NewStateMap;</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>   }</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> };</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2adcdd7a5088a4be4a85d4536d7a9b18">  502</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2adcdd7a5088a4be4a85d4536d7a9b18">ConsumedStmtVisitor::checkCallability</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> &PInfo,</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>                                            <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FunDecl,</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</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> BlameLoc) {</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>   assert(!PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a40dda8223fc1eabad0ed444878902bed">isTest</a>());</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>   </div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>   <span class="keywordflow">if</span> (!FunDecl-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1CallableWhenAttr.html">CallableWhenAttr</a>>())</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>   </div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CallableWhenAttr.html">CallableWhenAttr</a> *CWAttr = FunDecl-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1CallableWhenAttr.html">CallableWhenAttr</a>>();</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>   </div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>   <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a607b7642f9387b7cf600c63b76b74a98">isVar</a>()) {</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> VarState = StateMap->getState(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>());</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>     <span class="keywordflow">if</span> (VarState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a> || <a class="code" href="Consumed_8cpp.html#a1588702d2b102240f1d01c708558a658">isCallableInState</a>(CWAttr, VarState))</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>       <span class="keywordflow">return</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>     Analyzer.WarningsHandler.warnUseInInvalidState(</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>       FunDecl-><a class="code" href="classclang_1_1NamedDecl.html#a99d453b314da693c106d5acbc598fc6c">getNameAsString</a>(), PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>()-><a class="code" href="classclang_1_1NamedDecl.html#a99d453b314da693c106d5acbc598fc6c">getNameAsString</a>(),</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>       <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(VarState), BlameLoc);</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>     </div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> TmpState = PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a78084f6732a32e6ba6ec6daf005a0e23">getAsState</a>(StateMap);</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="keywordflow">if</span> (TmpState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a> || <a class="code" href="Consumed_8cpp.html#a1588702d2b102240f1d01c708558a658">isCallableInState</a>(CWAttr, TmpState))</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>     </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>     Analyzer.WarningsHandler.warnUseOfTempInInvalidState(</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>       FunDecl-><a class="code" href="classclang_1_1NamedDecl.html#a99d453b314da693c106d5acbc598fc6c">getNameAsString</a>(), <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(TmpState), BlameLoc);</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>   }</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> }</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="keywordtype">void</span> ConsumedStmtVisitor::forwardInfo(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *From, <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *To) {</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>   InfoEntry Entry = PropagationMap.find(From);</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>   </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>   <span class="keywordflow">if</span> (Entry != PropagationMap.end())</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>     PropagationMap.insert(PairType(To, Entry->second));</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> <span class="keywordtype">bool</span> ConsumedStmtVisitor::isLikeMoveAssignment(</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MethodDecl) {</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>   </div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>   <span class="keywordflow">return</span> MethodDecl-><a class="code" href="classclang_1_1CXXMethodDecl.html#ae7f87d55ecf52215e8ae6c1d54a023af" title="Determine whether this is a move assignment operator.">isMoveAssignmentOperator</a>() ||</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>          (MethodDecl-><a class="code" href="classclang_1_1FunctionDecl.html#add2961020f578864af81da463b72f5ae">getOverloadedOperator</a>() == OO_Equal &&</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>           MethodDecl-><a class="code" href="classclang_1_1FunctionDecl.html#a6e93edc7b4b6fad6ae4830e005ec539f">getNumParams</a>() == 1 &&</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>           MethodDecl-><a class="code" href="classclang_1_1FunctionDecl.html#ae9634725f4146974e541228f996a96cf">getParamDecl</a>(0)-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>()-><a class="code" href="classclang_1_1Type.html#a5f92e15531a30a074167893767c51944">isRValueReferenceType</a>());</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> }</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="keywordtype">void</span> ConsumedStmtVisitor::propagateReturnType(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Call,</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>                                               <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *Fun,</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>                                               <a class="code" href="classclang_1_1QualType.html">QualType</a> ReturnType) {</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>   <span class="keywordflow">if</span> (<a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(ReturnType)) {</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>     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> ReturnState;</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>     </div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>     <span class="keywordflow">if</span> (Fun-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>())</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>       ReturnState = <a class="code" href="Consumed_8cpp.html#a247a4fece754c90145cf9f29b9f252bb">mapReturnTypestateAttrState</a>(</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>         Fun-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>());</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>       ReturnState = <a class="code" href="Consumed_8cpp.html#ab2184f58809f6086582dbfe9fe33425d">mapConsumableAttrState</a>(ReturnType);</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>     PropagationMap.insert(PairType(Call, <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(ReturnState)));</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> </div>
+<div class="line"><a name="l00566"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ae03f9e93e9bcbe01cb30b2559d6c34de">  566</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ae03f9e93e9bcbe01cb30b2559d6c34de">ConsumedStmtVisitor::VisitBinaryOperator</a>(<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> *BinOp) {</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>   <span class="keywordflow">switch</span> (BinOp-><a class="code" href="classclang_1_1BinaryOperator.html#a497174c5cc2816aa3a3f29e12dd93165">getOpcode</a>()) {</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a30e5536f851a7efedefd1ca23a295741">BO_LAnd</a>:</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a7bc0171ddbb52333099a4774326d72c9">BO_LOr</a> : {</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>     InfoEntry LEntry = PropagationMap.find(BinOp-><a class="code" href="classclang_1_1BinaryOperator.html#ad8b108ac1a7795b9f388d8dece6b8924">getLHS</a>()),</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>               REntry = PropagationMap.find(BinOp-><a class="code" href="classclang_1_1BinaryOperator.html#a1ab10aae0ffa01be5d1a979e6da285e6">getRHS</a>());</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>     </div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>     VarTestResult LTest, RTest;</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>     </div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>     <span class="keywordflow">if</span> (LEntry != PropagationMap.end() && LEntry->second.isVarTest()) {</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>       LTest = LEntry->second.getVarTest();</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>       </div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>       LTest.Var      = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>       LTest.TestsFor = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>     }</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>     </div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>     <span class="keywordflow">if</span> (REntry != PropagationMap.end() && REntry->second.isVarTest()) {</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>       RTest = REntry->second.getVarTest();</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>       </div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>       RTest.Var      = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>       RTest.TestsFor = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>     }</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>     </div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>     <span class="keywordflow">if</span> (!(LTest.Var == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> && RTest.Var == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>))</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>       PropagationMap.insert(PairType(BinOp, <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(BinOp,</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>         static_cast<EffectiveOp>(BinOp-><a class="code" href="classclang_1_1BinaryOperator.html#a497174c5cc2816aa3a3f29e12dd93165">getOpcode</a>() == <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a7bc0171ddbb52333099a4774326d72c9">BO_LOr</a>), LTest, RTest)));</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>     </div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>   }</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>     </div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a31e63255bd536c2d74a66ac47160ed53">BO_PtrMemD</a>:</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1ae432d0b89cd5293af333b8854e20fd40">BO_PtrMemI</a>:</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>     forwardInfo(BinOp-><a class="code" href="classclang_1_1BinaryOperator.html#ad8b108ac1a7795b9f388d8dece6b8924">getLHS</a>(), BinOp);</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>     <span class="keywordflow">break</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="keywordflow">default</span>:</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>   }</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> }</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> </div>
+<div class="line"><a name="l00608"></a><span class="lineno"><a class="code" href="namespaceclang_1_1consumed.html#afd90fdbd865c55a3490a512ce6aea16f">  608</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1consumed.html#afd90fdbd865c55a3490a512ce6aea16f">isStdNamespace</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC) {</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>   <span class="keywordflow">if</span> (!DC-><a class="code" href="classclang_1_1DeclContext.html#ab365d1e47ea9b252eb8c0fc8c3794ffd">isNamespace</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>   <span class="keywordflow">while</span> (DC-><a class="code" href="classclang_1_1DeclContext.html#a31c99b38017e8d702fda9c0f1d021186" title="getParent - Returns the containing DeclContext.">getParent</a>()-><a class="code" href="classclang_1_1DeclContext.html#ab365d1e47ea9b252eb8c0fc8c3794ffd">isNamespace</a>())</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>     DC = DC-><a class="code" href="classclang_1_1DeclContext.html#a31c99b38017e8d702fda9c0f1d021186" title="getParent - Returns the containing DeclContext.">getParent</a>();</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</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>>(DC);</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span> </div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>   <span class="keywordflow">return</span> ND && ND-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() == <span class="stringliteral">"std"</span> &&</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>          ND-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>()-><a class="code" href="classclang_1_1DeclContext.html#add710d53ebeab05385a08e978862c149">isTranslationUnit</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"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2823574467bbc45bf4382549e3d11c18">  618</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2823574467bbc45bf4382549e3d11c18">ConsumedStmtVisitor::VisitCallExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *Call) {</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FunDecl =</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>     dyn_cast_or_null<FunctionDecl>(Call-><a class="code" href="classclang_1_1CallExpr.html#a88bb91e7e67e378fd6a895c1f679901d" title="If the callee is a FunctionDecl, return it. Otherwise return 0.">getDirectCallee</a>())) {</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">// Special case for the std::move function.</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>     <span class="comment">// TODO: Make this more specific. (Deferred)</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>     <span class="keywordflow">if</span> (Call-><a class="code" href="classclang_1_1CallExpr.html#a244fff3c657a825bbfe3771137c8fb83">getNumArgs</a>() == 1 &&</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>         FunDecl->getNameAsString() == <span class="stringliteral">"move"</span> &&</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>         <a class="code" href="namespaceclang_1_1consumed.html#afd90fdbd865c55a3490a512ce6aea16f">isStdNamespace</a>(FunDecl->getDeclContext())) {</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>       forwardInfo(Call-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(0), Call);</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>       <span class="keywordflow">return</span>;</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="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a> = Call-><a class="code" href="classclang_1_1CallExpr.html#a244fff3c657a825bbfe3771137c8fb83">getNumArgs</a>() - FunDecl->getNumParams();</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>     </div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> Index = Offset; Index < Call-><a class="code" href="classclang_1_1CallExpr.html#a244fff3c657a825bbfe3771137c8fb83">getNumArgs</a>(); ++Index) {</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *<a class="code" href="SemaOverload_8cpp.html#af465899bf43044df83229078154bc2ed">Param</a> = FunDecl->getParamDecl(Index - Offset);</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>       <a class="code" href="classclang_1_1QualType.html">QualType</a> ParamType = Param-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</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>       InfoEntry Entry = PropagationMap.find(Call-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(Index));</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>       </div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>       <span class="keywordflow">if</span> (Entry == PropagationMap.end() || Entry->second.isTest())</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>         <span class="keywordflow">continue</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>       <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> PInfo = Entry->second;</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>       </div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>       <span class="comment">// Check that the parameter is in the correct state.</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>       </div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>       <span class="keywordflow">if</span> (Param-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ParamTypestateAttr.html">ParamTypestateAttr</a>>()) {</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>         <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> ParamState = PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a78084f6732a32e6ba6ec6daf005a0e23">getAsState</a>(StateMap);</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>         </div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>         <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> ExpectedState =</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>           <a class="code" href="Consumed_8cpp.html#a1a3f7cfbef882b89dbf35a623eefaae3">mapParamTypestateAttrState</a>(Param-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1ParamTypestateAttr.html">ParamTypestateAttr</a>>());</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>         <span class="keywordflow">if</span> (ParamState != ExpectedState)</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>           Analyzer.WarningsHandler.warnParamTypestateMismatch(</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>             Call-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(Index - Offset)-><a class="code" href="classclang_1_1Expr.html#ab4fa508722ecc1546ad73cb31b0dc06c">getExprLoc</a>(),</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>             <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(ExpectedState), <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(ParamState));</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>       </div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>       <span class="keywordflow">if</span> (!(Entry->second.isVar() || Entry->second.isTmp()))</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>       </div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>       <span class="comment">// Adjust state on the caller side.</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="keywordflow">if</span> (<a class="code" href="Consumed_8cpp.html#a19c9acd4548062f758138c2e78c6d6a8">isRValueRefish</a>(ParamType)) {</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, PInfo, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">consumed::CS_Consumed</a>);</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>         </div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Param-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>()) {</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, PInfo,</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>           <a class="code" href="Consumed_8cpp.html#a247a4fece754c90145cf9f29b9f252bb">mapReturnTypestateAttrState</a>(Param-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>()));</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">else</span> <span class="keywordflow">if</span> (!<a class="code" href="Consumed_8cpp.html#a7f7395e383f8537c07787fa2512cc587">isValueType</a>(ParamType) &&</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>                  !ParamType-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>().<a class="code" href="classclang_1_1QualType.html#afea72c89b99446db779fcfb0ea257826" title="Determine whether this type is const-qualified.">isConstQualified</a>()) {</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>         </div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, PInfo, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">consumed::CS_Unknown</a>);</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>       }</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>     }</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>     </div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>     <a class="code" href="classclang_1_1QualType.html">QualType</a> RetType = FunDecl->getCallResultType();</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>     <span class="keywordflow">if</span> (RetType-><a class="code" href="classclang_1_1Type.html#ab2b860560d2ac12cd365aa09b143d195">isReferenceType</a>())</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>       RetType = RetType-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>();</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>     propagateReturnType(Call, FunDecl, RetType);</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>   }</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> }</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span> </div>
+<div class="line"><a name="l00685"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a03af5ef6306e4b7e1e46c64a39908426">  685</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a03af5ef6306e4b7e1e46c64a39908426">ConsumedStmtVisitor::VisitCastExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CastExpr.html">CastExpr</a> *Cast) {</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>   forwardInfo(Cast-><a class="code" href="classclang_1_1CastExpr.html#a37e3d80c4ca590eadbe49e400c50134b">getSubExpr</a>(), Cast);</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span> }</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span> </div>
+<div class="line"><a name="l00689"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ab990e1d6bd1e3925dac33f04eaf241c8">  689</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ab990e1d6bd1e3925dac33f04eaf241c8">ConsumedStmtVisitor::VisitCXXBindTemporaryExpr</a>(</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *Temp) {</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>   </div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>   InfoEntry Entry = PropagationMap.find(Temp-><a class="code" href="classclang_1_1CXXBindTemporaryExpr.html#aaf4a9a110306f2635542e15ac4a85d7e">getSubExpr</a>());</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>   </div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>   <span class="keywordflow">if</span> (Entry != PropagationMap.end() && !Entry->second.isTest()) {</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>     StateMap->setState(Temp, Entry->second.getAsState(StateMap));</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>     PropagationMap.insert(PairType(Temp, <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(Temp)));</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> }</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span> </div>
+<div class="line"><a name="l00700"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#acc2835a327de37d4b4fd11ab4f897e36">  700</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#acc2835a327de37d4b4fd11ab4f897e36">ConsumedStmtVisitor::VisitCXXConstructExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a> *Call) {</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>   <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *Constructor = Call-><a class="code" href="classclang_1_1CXXConstructExpr.html#acc1f0a9fee67eb3f6b8592495ff56548">getConstructor</a>();</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span> </div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>   <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> &CurrContext = AC.getASTContext();</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ThisType = Constructor-><a class="code" href="classclang_1_1CXXMethodDecl.html#ace7608e37d6c9d0f4d2b08efa9fa7cd4" title="Returns the type of the this pointer.">getThisType</a>(CurrContext)-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>();</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   </div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>   <span class="keywordflow">if</span> (!<a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(ThisType))</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>   </div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>   <span class="comment">// FIXME: What should happen if someone annotates the move constructor?</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>   <span class="keywordflow">if</span> (Constructor-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>()) {</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>     <span class="comment">// TODO: Adjust state of args appropriately.</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>     </div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>     <a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a> *RTAttr = Constructor-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>();</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> RetState = <a class="code" href="Consumed_8cpp.html#a247a4fece754c90145cf9f29b9f252bb">mapReturnTypestateAttrState</a>(RTAttr);</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>     PropagationMap.insert(PairType(Call, <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(RetState)));</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>     </div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Constructor-><a class="code" href="classclang_1_1CXXConstructorDecl.html#a261717abb407256031a905adf83711c7">isDefaultConstructor</a>()) {</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     </div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>     PropagationMap.insert(PairType(Call,</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>       <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(<a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">consumed::CS_Consumed</a>)));</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>     </div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Constructor-><a class="code" href="classclang_1_1CXXConstructorDecl.html#a5db5eb870a22c74d5874525b268a0734" title="Determine whether this constructor is a move constructor (C++0x [class.copy]p3), which can be used to...">isMoveConstructor</a>()) {</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>     InfoEntry Entry = PropagationMap.find(Call-><a class="code" href="classclang_1_1CXXConstructExpr.html#a9f460dadf776a2efd0177aafc06f6b50" title="Return the specified argument.">getArg</a>(0));</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="keywordflow">if</span> (Entry != PropagationMap.end()) {</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>       <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> PInfo = Entry->second;</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>       </div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>       <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a607b7642f9387b7cf600c63b76b74a98">isVar</a>()) {</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a>* Var = PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>();</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>         PropagationMap.insert(PairType(Call,</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>           <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(StateMap->getState(Var))));</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>         StateMap->setState(Var, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">consumed::CS_Consumed</a>);</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="keywordflow">else</span> <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a01bbd567571e90e485e7970def427ee1">isTmp</a>()) {</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *Tmp = PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a176f04368615a598080305e90142ac68">getTmp</a>();</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>         PropagationMap.insert(PairType(Call,</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>           <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(StateMap->getState(Tmp))));</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>         </div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>         StateMap->setState(Tmp, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">consumed::CS_Consumed</a>);</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>         </div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>         PropagationMap.insert(PairType(Call, PInfo));</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>       }</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>     }</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Constructor-><a class="code" href="classclang_1_1CXXConstructorDecl.html#ae294ffff326307a7ca6eb64e91597a8e" title="Whether this constructor is a copy constructor (C++ [class.copy]p2, which can be used to copy the cla...">isCopyConstructor</a>()) {</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>     forwardInfo(Call-><a class="code" href="classclang_1_1CXXConstructExpr.html#a9f460dadf776a2efd0177aafc06f6b50" title="Return the specified argument.">getArg</a>(0), Call);</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="keywordflow">else</span> {</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>     <span class="comment">// TODO: Adjust state of args appropriately.</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>     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> RetState = <a class="code" href="Consumed_8cpp.html#ab2184f58809f6086582dbfe9fe33425d">mapConsumableAttrState</a>(ThisType);</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>     PropagationMap.insert(PairType(Call, <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(RetState)));</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>   }</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> }</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> </div>
+<div class="line"><a name="l00760"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ace1a7c56b08165b37f28c6f72ebe2b47">  760</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ace1a7c56b08165b37f28c6f72ebe2b47">ConsumedStmtVisitor::VisitCXXMemberCallExpr</a>(</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMemberCallExpr.html">CXXMemberCallExpr</a> *Call) {</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>   </div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>   VisitCallExpr(Call);</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>   </div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>   InfoEntry Entry = PropagationMap.find(Call-><a class="code" href="classclang_1_1CallExpr.html#a3a2b7cbceb661c81f0d6eb937610eb75">getCallee</a>()-><a class="code" href="classclang_1_1Expr.html#a6128786ad6c6ad61b66ad4ddf09b1bd8">IgnoreParens</a>());</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>   </div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>   <span class="keywordflow">if</span> (Entry != PropagationMap.end()) {</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>     <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> PInfo = Entry->second;</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MethodDecl = Call-><a class="code" href="classclang_1_1CXXMemberCallExpr.html#a33de456b8cfd6a5bd1018da578b4aefc" title="Retrieves the declaration of the called method.">getMethodDecl</a>();</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>     </div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>     checkCallability(PInfo, MethodDecl, Call-><a class="code" href="classclang_1_1Expr.html#ab4fa508722ecc1546ad73cb31b0dc06c">getExprLoc</a>());</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>     <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a607b7642f9387b7cf600c63b76b74a98">isVar</a>()) {</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>       <span class="keywordflow">if</span> (<a class="code" href="Consumed_8cpp.html#a7f546231e2feeca18406b57a1db0e2fe">isTestingFunction</a>(MethodDecl))</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>         PropagationMap.insert(PairType(Call,</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>           <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>(), <a class="code" href="Consumed_8cpp.html#a2c6f56d49ba2c3ef5323f899c7a28173">testsFor</a>(MethodDecl))));</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (MethodDecl-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a>>())</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>         StateMap->setState(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>(),</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>           <a class="code" href="Consumed_8cpp.html#ac6a77ab708a03d51a0b7274fb55a8fe1">mapSetTypestateAttrState</a>(MethodDecl-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a>>()));</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a01bbd567571e90e485e7970def427ee1">isTmp</a>() && MethodDecl-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a>>()) {</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>       StateMap->setState(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a176f04368615a598080305e90142ac68">getTmp</a>(),</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>         <a class="code" href="Consumed_8cpp.html#ac6a77ab708a03d51a0b7274fb55a8fe1">mapSetTypestateAttrState</a>(MethodDecl-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a>>()));</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>     }</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>   }</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span> }</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span> </div>
+<div class="line"><a name="l00787"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ad4e11693a1c4d4e76a5ce0c8814fd860">  787</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ad4e11693a1c4d4e76a5ce0c8814fd860">ConsumedStmtVisitor::VisitCXXOperatorCallExpr</a>(</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXOperatorCallExpr.html" title="A call to an overloaded operator written using operator syntax.">CXXOperatorCallExpr</a> *Call) {</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>   </div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FunDecl =</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>     dyn_cast_or_null<FunctionDecl>(Call-><a class="code" href="classclang_1_1CallExpr.html#a88bb91e7e67e378fd6a895c1f679901d" title="If the callee is a FunctionDecl, return it. Otherwise return 0.">getDirectCallee</a>());</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>   </div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>   <span class="keywordflow">if</span> (!FunDecl) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>     </div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>   <span class="keywordflow">if</span> (isa<CXXMethodDecl>(FunDecl) &&</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>       isLikeMoveAssignment(cast<CXXMethodDecl>(FunDecl))) {</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>     </div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>     InfoEntry LEntry = PropagationMap.find(Call-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(0));</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>     InfoEntry REntry = PropagationMap.find(Call-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(1));</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>     </div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>     <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> LPInfo, RPInfo;</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>     </div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>     <span class="keywordflow">if</span> (LEntry != PropagationMap.end() &&</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>         REntry != PropagationMap.end()) {</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>       </div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>       LPInfo = LEntry->second;</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>       RPInfo = REntry->second;</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>       </div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>       <span class="keywordflow">if</span> (LPInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a56243d670931e4fea83037ef238fca64">isPointerToValue</a>() && RPInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a56243d670931e4fea83037ef238fca64">isPointerToValue</a>()) {</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, LPInfo, RPInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a78084f6732a32e6ba6ec6daf005a0e23">getAsState</a>(StateMap));</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>         PropagationMap.insert(PairType(Call, LPInfo));</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, RPInfo, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">consumed::CS_Consumed</a>);</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>         </div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (RPInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ab8b6cf20d53800401a6701b4ea098951">isState</a>()) {</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, LPInfo, RPInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a234ae2539e59613957b69c027ee182dc">getState</a>());</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>         PropagationMap.insert(PairType(Call, LPInfo));</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>         </div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, RPInfo, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">consumed::CS_Consumed</a>);</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>       }</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>       </div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LEntry != PropagationMap.end() &&</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>                REntry == PropagationMap.end()) {</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>       </div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>       LPInfo = LEntry->second;</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>       </div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>       assert(!LPInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a40dda8223fc1eabad0ed444878902bed">isTest</a>());</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>       </div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>       <span class="keywordflow">if</span> (LPInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a56243d670931e4fea83037ef238fca64">isPointerToValue</a>()) {</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, LPInfo, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">consumed::CS_Unknown</a>);</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>         PropagationMap.insert(PairType(Call, LPInfo));</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>         </div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>         PropagationMap.insert(PairType(Call,</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>           <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(<a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">consumed::CS_Unknown</a>)));</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>       }</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>       </div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LEntry == PropagationMap.end() &&</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>                REntry != PropagationMap.end()) {</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>       </div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>       RPInfo = REntry->second;</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>       </div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>       <span class="keywordflow">if</span> (RPInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a56243d670931e4fea83037ef238fca64">isPointerToValue</a>())</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>         <a class="code" href="namespaceclang_1_1consumed.html#afcc74c285b30cea60f47b94bd811f30a">setStateForVarOrTmp</a>(StateMap, RPInfo, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77ae13f12659f4c85551e644e9e1fa6860f">consumed::CS_Consumed</a>);</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>     }</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>     </div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>     </div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>     VisitCallExpr(Call);</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>     </div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>     InfoEntry Entry = PropagationMap.find(Call-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(0));</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>     </div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>     <span class="keywordflow">if</span> (Entry != PropagationMap.end()) {</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>       <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> PInfo = Entry->second;</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>       </div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>       checkCallability(PInfo, FunDecl, Call-><a class="code" href="classclang_1_1Expr.html#ab4fa508722ecc1546ad73cb31b0dc06c">getExprLoc</a>());</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>       </div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>       <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a607b7642f9387b7cf600c63b76b74a98">isVar</a>()) {</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>         <span class="keywordflow">if</span> (<a class="code" href="Consumed_8cpp.html#a7f546231e2feeca18406b57a1db0e2fe">isTestingFunction</a>(FunDecl))</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>           PropagationMap.insert(PairType(Call,</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>             <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>(), <a class="code" href="Consumed_8cpp.html#a2c6f56d49ba2c3ef5323f899c7a28173">testsFor</a>(FunDecl))));</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (FunDecl-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a>>())</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>           StateMap->setState(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a7cd57eef624ffd2e6f6c728086335564">getVar</a>(),</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>             <a class="code" href="Consumed_8cpp.html#ac6a77ab708a03d51a0b7274fb55a8fe1">mapSetTypestateAttrState</a>(FunDecl-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a>>()));</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>         </div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a01bbd567571e90e485e7970def427ee1">isTmp</a>() && FunDecl-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a>>()) {</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>         StateMap->setState(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a176f04368615a598080305e90142ac68">getTmp</a>(),</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>           <a class="code" href="Consumed_8cpp.html#ac6a77ab708a03d51a0b7274fb55a8fe1">mapSetTypestateAttrState</a>(FunDecl-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1SetTypestateAttr.html">SetTypestateAttr</a>>()));</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>     }</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>     }</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>   }</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span> }</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span> </div>
+<div class="line"><a name="l00874"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#aa212ccdc9627aef0bb2c090661b562c1">  874</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#aa212ccdc9627aef0bb2c090661b562c1">ConsumedStmtVisitor::VisitDeclRefExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *DeclRef) {</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var = dyn_cast_or_null<VarDecl>(DeclRef-><a class="code" href="classclang_1_1DeclRefExpr.html#a22eec021070f5d0733e90b6c5c127a25">getDecl</a>()))</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>     <span class="keywordflow">if</span> (StateMap->getState(Var) != <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">consumed::CS_None</a>)</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>       PropagationMap.insert(PairType(DeclRef, <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(Var)));</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span> }</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span> </div>
+<div class="line"><a name="l00880"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ab1e18b2399dd01e23c46b9a760795c46">  880</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#ab1e18b2399dd01e23c46b9a760795c46">ConsumedStmtVisitor::VisitDeclStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *DeclS) {</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1DeclStmt.html#afa787c81556cef57b0df3f11db4de056">DeclStmt::const_decl_iterator</a> DI = DeclS-><a class="code" href="classclang_1_1DeclStmt.html#a768633348948e677e5cba8191d5507be">decl_begin</a>(),</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>        DE = DeclS-><a class="code" href="classclang_1_1DeclStmt.html#a30441673be0ce59ad1a5ee98481d33ab">decl_end</a>(); DI != DE; ++DI) {</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>     </div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>     <span class="keywordflow">if</span> (isa<VarDecl>(*DI)) VisitVarDecl(cast<VarDecl>(*DI));</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>   }</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>   </div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>   <span class="keywordflow">if</span> (DeclS-><a class="code" href="classclang_1_1DeclStmt.html#a3280ac0a91f46713e8c578aa50f6ac65">isSingleDecl</a>())</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var = dyn_cast_or_null<VarDecl>(DeclS-><a class="code" href="classclang_1_1DeclStmt.html#a7a3a8ab21cb320cd84c3dce1e678b0b3">getSingleDecl</a>()))</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>       PropagationMap.insert(PairType(DeclS, <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(Var)));</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span> }</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span> </div>
+<div class="line"><a name="l00892"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a1e1ee3e10062397558bcf633bb0aeade">  892</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a1e1ee3e10062397558bcf633bb0aeade">ConsumedStmtVisitor::VisitMaterializeTemporaryExpr</a>(</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</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> *Temp) {</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>   </div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>   forwardInfo(Temp-><a class="code" href="classclang_1_1MaterializeTemporaryExpr.html#a5dd4b02d9bf3c32392d3e99355165fc1" title="Retrieve the temporary-generating subexpression whose value will be materialized into a glvalue...">GetTemporaryExpr</a>(), Temp);</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span> }</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span> </div>
+<div class="line"><a name="l00898"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a496b341b6d93ee1f54d3d348b5bd422f">  898</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a496b341b6d93ee1f54d3d348b5bd422f">ConsumedStmtVisitor::VisitMemberExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1MemberExpr.html">MemberExpr</a> *MExpr) {</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>   forwardInfo(MExpr-><a class="code" href="classclang_1_1MemberExpr.html#ade0c09aefce7fca4cfd671cd96a87083">getBase</a>(), MExpr);</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span> }</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span> </div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span> </div>
+<div class="line"><a name="l00903"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2cf59f818e917610ad6b5356bdd85b2f">  903</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2cf59f818e917610ad6b5356bdd85b2f">ConsumedStmtVisitor::VisitParmVarDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *<a class="code" href="SemaOverload_8cpp.html#af465899bf43044df83229078154bc2ed">Param</a>) {</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ParamType = Param-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> ParamState = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">consumed::CS_None</a>;</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>   </div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>   <span class="keywordflow">if</span> (Param-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ParamTypestateAttr.html">ParamTypestateAttr</a>>()) {</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ParamTypestateAttr.html">ParamTypestateAttr</a> *PTAttr = Param-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1ParamTypestateAttr.html">ParamTypestateAttr</a>>();</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>     ParamState = <a class="code" href="Consumed_8cpp.html#a1a3f7cfbef882b89dbf35a623eefaae3">mapParamTypestateAttrState</a>(PTAttr);</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>     </div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(ParamType)) {</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>     ParamState = <a class="code" href="Consumed_8cpp.html#ab2184f58809f6086582dbfe9fe33425d">mapConsumableAttrState</a>(ParamType);</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>     </div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="Consumed_8cpp.html#a19c9acd4548062f758138c2e78c6d6a8">isRValueRefish</a>(ParamType) &&</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>              <a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(ParamType-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>())) {</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>     </div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>     ParamState = <a class="code" href="Consumed_8cpp.html#ab2184f58809f6086582dbfe9fe33425d">mapConsumableAttrState</a>(ParamType-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>());</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>     </div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ParamType-><a class="code" href="classclang_1_1Type.html#ab2b860560d2ac12cd365aa09b143d195">isReferenceType</a>() &&</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>              <a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(ParamType-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>())) {</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>     ParamState = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">consumed::CS_Unknown</a>;</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>   }</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>   </div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>   <span class="keywordflow">if</span> (ParamState != <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>)</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>     StateMap->setState(Param, ParamState);</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span> }</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span> </div>
+<div class="line"><a name="l00928"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a38cb375fb070cafc2a1e3b150f7191b0">  928</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a38cb375fb070cafc2a1e3b150f7191b0">ConsumedStmtVisitor::VisitReturnStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ReturnStmt.html">ReturnStmt</a> *Ret) {</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> ExpectedState = Analyzer.getExpectedReturnState();</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>   </div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>   <span class="keywordflow">if</span> (ExpectedState != <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>) {</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>     InfoEntry Entry = PropagationMap.find(Ret-><a class="code" href="classclang_1_1ReturnStmt.html#a7de01dadd6eeb10fae138e97d7a8edc7">getRetValue</a>());</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>     </div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>     <span class="keywordflow">if</span> (Entry != PropagationMap.end()) {</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>       <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> RetState = Entry->second.getAsState(StateMap);</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>         </div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>       <span class="keywordflow">if</span> (RetState != ExpectedState)</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>         Analyzer.WarningsHandler.warnReturnTypestateMismatch(</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>           Ret-><a class="code" href="classclang_1_1ReturnStmt.html#a85a5d946c188a63d823fc10762855546">getReturnLoc</a>(), <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(ExpectedState),</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>           <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(RetState));</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>     }</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>   }</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>   </div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>   StateMap->checkParamsForReturnTypestate(Ret-><a class="code" href="classclang_1_1ReturnStmt.html#a51d0ad93eaa420a7c3c6c0b9e23f5462">getLocStart</a>(),</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>                                           Analyzer.WarningsHandler);</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span> }</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span> </div>
+<div class="line"><a name="l00948"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#adda08d7f98ac3f531e8888c22feedbb3">  948</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#adda08d7f98ac3f531e8888c22feedbb3">ConsumedStmtVisitor::VisitUnaryOperator</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1UnaryOperator.html">UnaryOperator</a> *UOp) {</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>   InfoEntry Entry = PropagationMap.find(UOp-><a class="code" href="classclang_1_1UnaryOperator.html#a64fdf148f4f40ae0a35e2bc7e0bfac10">getSubExpr</a>()-><a class="code" href="classclang_1_1Expr.html#a6128786ad6c6ad61b66ad4ddf09b1bd8">IgnoreParens</a>());</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>   <span class="keywordflow">if</span> (Entry == PropagationMap.end()) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>   </div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>   <span class="keywordflow">switch</span> (UOp-><a class="code" href="classclang_1_1UnaryOperator.html#a4fceff35ff6b7f186590155fa21df48b">getOpcode</a>()) {</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a8daaf3ab8b5c55053f6da47944e48fffa74539ddfc7ac7056cfaeeca1deed46be">UO_AddrOf</a>:</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>     PropagationMap.insert(PairType(UOp, Entry->second));</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>   </div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a8daaf3ab8b5c55053f6da47944e48fffab236f32b7261ecbeb4da53fedab54d4b">UO_LNot</a>:</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>     <span class="keywordflow">if</span> (Entry->second.isTest())</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>       PropagationMap.insert(PairType(UOp, Entry->second.invertTest()));</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>   </div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>   }</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span> }</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span> </div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span> <span class="comment">// TODO: See if I need to check for reference types here.</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a08ea7bfcf51919e0e4bae656e4ae68f5">  968</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a08ea7bfcf51919e0e4bae656e4ae68f5">ConsumedStmtVisitor::VisitVarDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var) {</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>   <span class="keywordflow">if</span> (<a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(Var-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>())) {</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>     <span class="keywordflow">if</span> (Var-><a class="code" href="classclang_1_1VarDecl.html#a0404df3a6f13fbe1cda45150ee725f8a">hasInit</a>()) {</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>       MapType::iterator VIT = PropagationMap.find(</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>         Var-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>()-><a class="code" href="classclang_1_1Expr.html#a4044b5da6ee0f7a5a67419dc5a106883">IgnoreImplicit</a>());</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>       <span class="keywordflow">if</span> (VIT != PropagationMap.end()) {</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>         <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> PInfo = VIT->second;</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>         <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> St = PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a78084f6732a32e6ba6ec6daf005a0e23">getAsState</a>(StateMap);</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>         </div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>         <span class="keywordflow">if</span> (St != <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">consumed::CS_None</a>) {</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>           StateMap->setState(Var, St);</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>           <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>         }</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>       }</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>     }</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>     <span class="comment">// Otherwise</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>     StateMap->setState(Var, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">consumed::CS_Unknown</a>);</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>   }</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span> }</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span> }} <span class="comment">// end clang::consumed::ConsumedStmtVisitor</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span> </div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span> <span class="keyword">namespace </span>consumed {</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span> </div>
+<div class="line"><a name="l00992"></a><span class="lineno"><a class="code" href="namespaceclang_1_1consumed.html#ade984ae9c8d32961b023c0b4a6324b0f">  992</a></span> <span class="keywordtype">void</span> <a class="code" href="namespaceclang_1_1consumed.html#ade984ae9c8d32961b023c0b4a6324b0f">splitVarStateForIf</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1IfStmt.html">IfStmt</a> * IfNode, <span class="keyword">const</span> VarTestResult &Test,</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>                         <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *ThenStates,</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>                         <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *ElseStates) {</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span> </div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> VarState = ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a63f147f2784b3cf9958708dac94050cc" title="Get the consumed state of a given variable.">getState</a>(Test.Var);</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>   </div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>   <span class="keywordflow">if</span> (VarState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>) {</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>     ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">setState</a>(Test.Var, Test.TestsFor);</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>     ElseStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">setState</a>(Test.Var, <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(Test.TestsFor));</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>   </div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (VarState == <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(Test.TestsFor)) {</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>     ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>     </div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (VarState == Test.TestsFor) {</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>     ElseStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>   }</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> }</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div>
+<div class="line"><a name="l01010"></a><span class="lineno"><a class="code" href="namespaceclang_1_1consumed.html#a4cdf78fa90494ff40fefb1822a856049"> 1010</a></span> <span class="keywordtype">void</span> <a class="code" href="namespaceclang_1_1consumed.html#a4cdf78fa90494ff40fefb1822a856049">splitVarStateForIfBinOp</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> &PInfo,</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *ThenStates, <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *ElseStates) {</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>   </div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>   <span class="keyword">const</span> VarTestResult &LTest = PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#ac70f3c4c23c862c4679ad8d94dee9cfb">getLTest</a>(),</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>                       &RTest = PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a17e7c795a3e9775d9d8bb73a24bb2db1">getRTest</a>();</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>   </div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> LState = LTest.Var ? ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a63f147f2784b3cf9958708dac94050cc" title="Get the consumed state of a given variable.">getState</a>(LTest.Var) : <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>,</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>                 RState = RTest.Var ? ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a63f147f2784b3cf9958708dac94050cc" title="Get the consumed state of a given variable.">getState</a>(RTest.Var) : <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>   </div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>   <span class="keywordflow">if</span> (LTest.Var) {</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>     <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a1e8b977c5ed03bf837ae7c542b314154">testEffectiveOp</a>() == <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a4b901dff3c414c3bbd39ebdffe83262b">EO_And</a>) {</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>       <span class="keywordflow">if</span> (LState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>) {</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>         ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">setState</a>(LTest.Var, LTest.TestsFor);</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>         </div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LState == <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(LTest.TestsFor)) {</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>         ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>         </div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LState == LTest.TestsFor && <a class="code" href="Consumed_8cpp.html#afa5aa7619bd8554dcf3f3ad6948ef892">isKnownState</a>(RState)) {</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>         <span class="keywordflow">if</span> (RState == RTest.TestsFor)</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>           ElseStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>         <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>           ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>       }</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>       </div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>       <span class="keywordflow">if</span> (LState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>) {</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>         ElseStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">setState</a>(LTest.Var,</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>                              <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(LTest.TestsFor));</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>       </div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LState == LTest.TestsFor) {</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>         ElseStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>         </div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LState == <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(LTest.TestsFor) &&</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>                  <a class="code" href="Consumed_8cpp.html#afa5aa7619bd8554dcf3f3ad6948ef892">isKnownState</a>(RState)) {</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>         </div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>         <span class="keywordflow">if</span> (RState == RTest.TestsFor)</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>           ElseStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>         <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>           ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>       }</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>     }</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>   }</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>   </div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>   <span class="keywordflow">if</span> (RTest.Var) {</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>     <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a1e8b977c5ed03bf837ae7c542b314154">testEffectiveOp</a>() == <a class="code" href="namespaceclang_1_1consumed.html#a7fa3ff4a29f822fc202c3bdf6f30f5c0a4b901dff3c414c3bbd39ebdffe83262b">EO_And</a>) {</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>       <span class="keywordflow">if</span> (RState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>)</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>         ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">setState</a>(RTest.Var, RTest.TestsFor);</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (RState == <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(RTest.TestsFor))</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>         ThenStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>       </div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>       <span class="keywordflow">if</span> (RState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>)</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>         ElseStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">setState</a>(RTest.Var,</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>                              <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(RTest.TestsFor));</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (RState == RTest.TestsFor)</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>         ElseStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">markUnreachable</a>();</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>     }</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>   }</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> }</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> </div>
+<div class="line"><a name="l01070"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#aa3f7023f31290da8ad17b035ef38b283"> 1070</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#aa3f7023f31290da8ad17b035ef38b283">ConsumedBlockInfo::allBackEdgesVisited</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *CurrBlock,</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>                                             <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *TargetBlock) {</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>   </div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>   assert(CurrBlock && <span class="stringliteral">"Block pointer must not be NULL"</span>);</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>   assert(TargetBlock && <span class="stringliteral">"TargetBlock pointer must not be NULL"</span>);</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>   </div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> CurrBlockOrder = VisitOrder[CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()];</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html">CFGBlock::const_pred_iterator</a> PI = TargetBlock-><a class="code" href="classclang_1_1CFGBlock.html#ac0001ac14b86768c641f769c5fb1f4c6">pred_begin</a>(),</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>        PE = TargetBlock-><a class="code" href="classclang_1_1CFGBlock.html#a172965bda787bf3795bb7f02b2520033">pred_end</a>(); PI != PE; ++PI) {</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>     <span class="keywordflow">if</span> (*PI && CurrBlockOrder < VisitOrder[(*PI)->getBlockID()] )</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>   }</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> }</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> </div>
+<div class="line"><a name="l01085"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a9e06afbce43934385ae50b980205bd94"> 1085</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a9e06afbce43934385ae50b980205bd94">ConsumedBlockInfo::addInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *Block,</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>                                 <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *StateMap,</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>                                 <span class="keywordtype">bool</span> &AlreadyOwned) {</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>   </div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>   assert(Block && <span class="stringliteral">"Block pointer must not be NULL"</span>);</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>   </div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *Entry = StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()];</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>     </div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>   <span class="keywordflow">if</span> (Entry) {</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>     Entry-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ae13b99bd7a22b1911bffe1d3857f32a0" title="Merge this state map with another map.">intersect</a>(StateMap);</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>     </div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (AlreadyOwned) {</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>     StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()] = <span class="keyword">new</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a>(*StateMap);</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>     </div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>     StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()] = StateMap;</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>     AlreadyOwned = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>   }</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> }</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> </div>
+<div class="line"><a name="l01105"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#aaf02acfd6e95bbc3eb573e698f01f2d3"> 1105</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a9e06afbce43934385ae50b980205bd94">ConsumedBlockInfo::addInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *Block,</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>                                 <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *StateMap) {</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>   </div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>   assert(Block != <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> && <span class="stringliteral">"Block pointer must not be NULL"</span>);</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>   </div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *Entry = StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()];</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>     </div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>   <span class="keywordflow">if</span> (Entry) {</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>     Entry-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ae13b99bd7a22b1911bffe1d3857f32a0" title="Merge this state map with another map.">intersect</a>(StateMap);</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>     <span class="keyword">delete</span> StateMap;</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>     </div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>     StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()] = StateMap;</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>   }</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> }</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> </div>
+<div class="line"><a name="l01121"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a45b89ad113fdec544301a130b223f37f"> 1121</a></span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a>* <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a45b89ad113fdec544301a130b223f37f">ConsumedBlockInfo::borrowInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *Block) {</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>   assert(Block && <span class="stringliteral">"Block pointer must not be NULL"</span>);</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>   assert(StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()] && <span class="stringliteral">"Block has no block info"</span>);</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>   </div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>   <span class="keywordflow">return</span> StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()];</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> }</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> </div>
+<div class="line"><a name="l01128"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a2caace5d3d30692daf224b9049370a08"> 1128</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a2caace5d3d30692daf224b9049370a08">ConsumedBlockInfo::discardInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *Block) {</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> BlockID = Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>();</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>   <span class="keyword">delete</span> StateMapsArray[BlockID];</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>   StateMapsArray[BlockID] = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> }</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> </div>
+<div class="line"><a name="l01134"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a74d9bb5ae067c6f2ce36c3ea514fb9aa"> 1134</a></span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a>* <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a74d9bb5ae067c6f2ce36c3ea514fb9aa">ConsumedBlockInfo::getInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *Block) {</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>   assert(Block && <span class="stringliteral">"Block pointer must not be NULL"</span>);</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>   </div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *StateMap = StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()];</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>   <span class="keywordflow">if</span> (isBackEdgeTarget(Block)) {</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a>(*StateMap);</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>     StateMapsArray[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()] = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>     <span class="keywordflow">return</span> StateMap;</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>   }</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> }</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> </div>
+<div class="line"><a name="l01146"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#ae33dafaec4beb95bc1884d0daab8a66c"> 1146</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#ae33dafaec4beb95bc1884d0daab8a66c">ConsumedBlockInfo::isBackEdge</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *From, <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *To) {</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>   assert(From && <span class="stringliteral">"From block must not be NULL"</span>);</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>   assert(To   && <span class="stringliteral">"From block must not be NULL"</span>);</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>   </div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>   <span class="keywordflow">return</span> VisitOrder[From-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()] > VisitOrder[To-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()];</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> }</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> </div>
+<div class="line"><a name="l01153"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a6500fbfd64e83391552ada42727dfafb"> 1153</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html#a6500fbfd64e83391552ada42727dfafb">ConsumedBlockInfo::isBackEdgeTarget</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *Block) {</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>   assert(Block != <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> && <span class="stringliteral">"Block pointer must not be NULL"</span>);</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>   </div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>   <span class="comment">// Anything with less than two predecessors can't be the target of a back</span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>   <span class="comment">// edge.</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>   <span class="keywordflow">if</span> (Block-><a class="code" href="classclang_1_1CFGBlock.html#aa3ac7df9393571091545e634ab365c41">pred_size</a>() < 2)</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>   </div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> BlockVisitOrder = VisitOrder[Block-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()];</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html">CFGBlock::const_pred_iterator</a> PI = Block-><a class="code" href="classclang_1_1CFGBlock.html#ac0001ac14b86768c641f769c5fb1f4c6">pred_begin</a>(),</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>        PE = Block-><a class="code" href="classclang_1_1CFGBlock.html#a172965bda787bf3795bb7f02b2520033">pred_end</a>(); PI != PE; ++PI) {</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>     <span class="keywordflow">if</span> (*PI && BlockVisitOrder < VisitOrder[(*PI)->getBlockID()])</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>   }</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> }</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> </div>
+<div class="line"><a name="l01170"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a09699071f87ca2906d93607c35adcfe0"> 1170</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a09699071f87ca2906d93607c35adcfe0" title="Warn if any of the parameters being tracked are not in the state they were declared to be in upon ret...">ConsumedStateMap::checkParamsForReturnTypestate</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> BlameLoc,</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedWarningsHandlerBase.html">ConsumedWarningsHandlerBase</a> &WarningsHandler)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>   </div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> ExpectedState;</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>   </div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>   <span class="keywordflow">for</span> (VarMapType::const_iterator DMI = VarMap.begin(), DME = VarMap.end();</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>        DMI != DME; ++DMI) {</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>     </div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>     <span class="keywordflow">if</span> (isa<ParmVarDecl>(DMI->first)) {</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *<a class="code" href="SemaOverload_8cpp.html#af465899bf43044df83229078154bc2ed">Param</a> = cast<ParmVarDecl>(DMI->first);</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>       </div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>       <span class="keywordflow">if</span> (!Param-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>()) <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>       </div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>       ExpectedState =</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>         <a class="code" href="Consumed_8cpp.html#a247a4fece754c90145cf9f29b9f252bb">mapReturnTypestateAttrState</a>(Param-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>());</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>       </div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>       <span class="keywordflow">if</span> (DMI->second != ExpectedState) {</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>         WarningsHandler.<a class="code" href="classclang_1_1consumed_1_1ConsumedWarningsHandlerBase.html#af8f2243d52f8453420c70bd1cf3d4b3b" title="Warn about parameter typestate mismatches upon return.">warnParamReturnTypestateMismatch</a>(BlameLoc,</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>           Param-><a class="code" href="classclang_1_1NamedDecl.html#a99d453b314da693c106d5acbc598fc6c">getNameAsString</a>(), <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(ExpectedState),</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>           <a class="code" href="Consumed_8cpp.html#a68607dce916462b2e1b72a62986205dd">stateToString</a>(DMI->second));</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>       }</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>     }</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>   }</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> }</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> </div>
+<div class="line"><a name="l01195"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a4bdcc7bc64a0f58fb15fbc4a0557e183"> 1195</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a4bdcc7bc64a0f58fb15fbc4a0557e183" title="Clear the TmpMap.">ConsumedStateMap::clearTemporaries</a>() {</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>   TmpMap.clear();</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> }</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> </div>
+<div class="line"><a name="l01199"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a63f147f2784b3cf9958708dac94050cc"> 1199</a></span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a63f147f2784b3cf9958708dac94050cc" title="Get the consumed state of a given variable.">ConsumedStateMap::getState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>   VarMapType::const_iterator Entry = VarMap.find(Var);</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>   </div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>   <span class="keywordflow">if</span> (Entry != VarMap.end())</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>     <span class="keywordflow">return</span> Entry->second;</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>     </div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>   <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> }</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> </div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a></div>
+<div class="line"><a name="l01209"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a44057bb09d35aca5d1e9be7701c945c5"> 1209</a></span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a63f147f2784b3cf9958708dac94050cc" title="Get the consumed state of a given variable.">ConsumedStateMap::getState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *Tmp)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>   TmpMapType::const_iterator Entry = TmpMap.find(Tmp);</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>   </div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>   <span class="keywordflow">if</span> (Entry != TmpMap.end())</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>     <span class="keywordflow">return</span> Entry->second;</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>   </div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>   <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> }</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> </div>
+<div class="line"><a name="l01218"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ae13b99bd7a22b1911bffe1d3857f32a0"> 1218</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ae13b99bd7a22b1911bffe1d3857f32a0" title="Merge this state map with another map.">ConsumedStateMap::intersect</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *Other) {</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> LocalState;</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>   </div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>   <span class="keywordflow">if</span> (this->From && this->From == Other-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a97a566577aafa48f004b2ffab51a0a0c">From</a> && !Other-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a7ee2095c050dffee059987be60a56020">Reachable</a>) {</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>     this->markUnreachable();</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>   }</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>   </div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>   <span class="keywordflow">for</span> (VarMapType::const_iterator DMI = Other-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ac2df2d912c915b96602643b90d26c9c9">VarMap</a>.begin(),</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>        DME = Other-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ac2df2d912c915b96602643b90d26c9c9">VarMap</a>.end(); DMI != DME; ++DMI) {</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>     </div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>     LocalState = this->getState(DMI->first);</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>     </div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>     <span class="keywordflow">if</span> (LocalState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>)</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>     </div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>     <span class="keywordflow">if</span> (LocalState != DMI->second)</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>        VarMap[DMI->first] = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>;</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>   }</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> }</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> </div>
+<div class="line"><a name="l01239"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a8718b05e0e31a6abc88d8621eb85baa9"> 1239</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a8718b05e0e31a6abc88d8621eb85baa9">ConsumedStateMap::intersectAtLoopHead</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *LoopHead,</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *LoopBack, <span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *LoopBackStates,</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedWarningsHandlerBase.html">ConsumedWarningsHandlerBase</a> &WarningsHandler) {</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>   </div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>   <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> LocalState;</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</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> BlameLoc = <a class="code" href="Consumed_8cpp.html#acb11e07ef748998d59cf47afc61ff24f">getLastStmtLoc</a>(LoopBack);</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>   </div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>   <span class="keywordflow">for</span> (VarMapType::const_iterator DMI = LoopBackStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ac2df2d912c915b96602643b90d26c9c9">VarMap</a>.begin(),</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>        DME = LoopBackStates-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ac2df2d912c915b96602643b90d26c9c9">VarMap</a>.end(); DMI != DME; ++DMI) {</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>     </div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>     LocalState = this->getState(DMI->first);</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>     </div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>     <span class="keywordflow">if</span> (LocalState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>)</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>     </div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>     <span class="keywordflow">if</span> (LocalState != DMI->second) {</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>       VarMap[DMI->first] = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>       WarningsHandler.<a class="code" href="classclang_1_1consumed_1_1ConsumedWarningsHandlerBase.html#a5b6a59fa10854d89ecb7c728fbb7a91c" title="Warn that a variable's state doesn't match at the entry and exit of a loop.">warnLoopStateMismatch</a>(</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>         BlameLoc, DMI->first->getNameAsString());</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>     }</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>   }</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> }</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> </div>
+<div class="line"><a name="l01262"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683"> 1262</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a88beb195b9705304ca1a12f8ca860683" title="Mark the block as unreachable.">ConsumedStateMap::markUnreachable</a>() {</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>   this->Reachable = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>   VarMap.clear();</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>   TmpMap.clear();</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> }</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> </div>
+<div class="line"><a name="l01268"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db"> 1268</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">ConsumedStateMap::setState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var, <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>) {</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>   VarMap[Var] = <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> }</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> </div>
+<div class="line"><a name="l01272"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a7d57d6b9fbf2585e88660fcbef639756"> 1272</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a3eaa8452a63de1ee1bba80af96b5a1db" title="Set the consumed state of a given variable.">ConsumedStateMap::setState</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *Tmp,</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>                                 <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>) {</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>   TmpMap[Tmp] = <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> }</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> </div>
+<div class="line"><a name="l01277"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a1c4d0e0989fdec67f6141167a7272169"> 1277</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a1c4d0e0989fdec67f6141167a7272169" title="Remove the variable from our state map.">ConsumedStateMap::remove</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var) {</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>   VarMap.erase(Var);</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> }</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> </div>
+<div class="line"><a name="l01281"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a8fcd43c4d7e22dedd14907402393a9a8"> 1281</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#a8fcd43c4d7e22dedd14907402393a9a8" title="Tests to see if there is a mismatch in the states stored in two maps.">ConsumedStateMap::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a> *Other)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>   <span class="keywordflow">for</span> (VarMapType::const_iterator DMI = Other-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ac2df2d912c915b96602643b90d26c9c9">VarMap</a>.begin(),</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>        DME = Other-><a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html#ac2df2d912c915b96602643b90d26c9c9">VarMap</a>.end(); DMI != DME; ++DMI) {</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>     </div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>     <span class="keywordflow">if</span> (this->getState(DMI->first) != DMI->second)</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>   }</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>   </div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> }</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> </div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="keywordtype">void</span> ConsumedAnalyzer::determineExpectedReturnState(<a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC,</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>                                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D) {</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> ReturnType;</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *Constructor = dyn_cast<CXXConstructorDecl>(D)) {</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</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> &CurrContext = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#ab702d747ada83aab3ede6f08c9e32390">getASTContext</a>();</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>     ReturnType = Constructor->getThisType(CurrContext)-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>();</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>   } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>     ReturnType = D-><a class="code" href="classclang_1_1FunctionDecl.html#ac032681ca24174109591c0873f3ff471" title="Determine the type of an expression that calls this function.">getCallResultType</a>();</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> </div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>()) {</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a> *RTSAttr = D-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1ReturnTypestateAttr.html">ReturnTypestateAttr</a>>();</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> </div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD = ReturnType-><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="l01305"></a><span class="lineno"> 1305</span>     <span class="keywordflow">if</span> (!RD || !RD->hasAttr<<a class="code" href="classclang_1_1ConsumableAttr.html">ConsumableAttr</a>>()) {</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>       <span class="comment">// FIXME: This should be removed when template instantiation propagates</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>       <span class="comment">//        attributes at template specialization definition, not</span></div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>       <span class="comment">//        declaration. When it is removed the test needs to be enabled</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>       <span class="comment">//        in SemaDeclAttr.cpp.</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>       WarningsHandler.warnReturnTypestateForUnconsumableType(</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>           RTSAttr-><a class="code" href="classclang_1_1Attr.html#a322fe9fbaec102390f902a4cd0b63e51">getLocation</a>(), ReturnType.<a class="code" href="classclang_1_1QualType.html#af755c58826e02f164c9b1d442762457d">getAsString</a>());</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>       ExpectedReturnState = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>     } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>       ExpectedReturnState = <a class="code" href="Consumed_8cpp.html#a247a4fece754c90145cf9f29b9f252bb">mapReturnTypestateAttrState</a>(RTSAttr);</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="Consumed_8cpp.html#a494c7c396ff0f8ba0c60e92c2ae012c7">isConsumableType</a>(ReturnType))</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>     ExpectedReturnState = <a class="code" href="Consumed_8cpp.html#ab2184f58809f6086582dbfe9fe33425d">mapConsumableAttrState</a>(ReturnType);</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>     ExpectedReturnState = <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a3983968b1f7d115d7ede05517145ad00">CS_None</a>;</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> }</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> </div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="keywordtype">bool</span> ConsumedAnalyzer::splitState(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *CurrBlock,</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html">ConsumedStmtVisitor</a> &Visitor) {</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>   </div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<ConsumedStateMap></a> FalseStates(<span class="keyword">new</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a>(*CurrStates));</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>   <a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a> PInfo;</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>   </div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1IfStmt.html">IfStmt</a> *IfNode =</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>     dyn_cast_or_null<IfStmt>(CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>().<a class="code" href="classclang_1_1CFGTerminator.html#a6b2a5f5145c7851cf07d18c0f817b117">getStmt</a>())) {</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>     </div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Cond = IfNode->getCond();</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>     </div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>     PInfo = Visitor.<a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a98bcb092acfcc235af7c034ca4c03150">getInfo</a>(Cond);</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>     <span class="keywordflow">if</span> (!PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a4461220242d3812ecbfe6a4335874801">isValid</a>() && isa<BinaryOperator>(Cond))</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>       PInfo = Visitor.<a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a98bcb092acfcc235af7c034ca4c03150">getInfo</a>(cast<BinaryOperator>(Cond)->getRHS());</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>     </div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>     <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa9d1b66b38d088dc436bdb2c941e4b32">isVarTest</a>()) {</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>       CurrStates->setSource(Cond);</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>       FalseStates->setSource(Cond);</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>       <a class="code" href="namespaceclang_1_1consumed.html#ade984ae9c8d32961b023c0b4a6324b0f">splitVarStateForIf</a>(IfNode, PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa7e887a8c32215b7a4d9a270e1359117">getVarTest</a>(), CurrStates,</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>                          FalseStates.get());</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>       </div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aca58970de85948d42e2f9d3eafdf552c">isBinTest</a>()) {</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>       CurrStates->setSource(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a1a3e5ad8c67ece8f311cafe256acf098">testSourceNode</a>());</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>       FalseStates->setSource(PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#a1a3e5ad8c67ece8f311cafe256acf098">testSourceNode</a>());</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>       <a class="code" href="namespaceclang_1_1consumed.html#a4cdf78fa90494ff40fefb1822a856049">splitVarStateForIfBinOp</a>(PInfo, CurrStates, FalseStates.get());</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>       </div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>     }</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>     </div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</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> *BinOp =</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>     dyn_cast_or_null<BinaryOperator>(CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>().<a class="code" href="classclang_1_1CFGTerminator.html#a6b2a5f5145c7851cf07d18c0f817b117">getStmt</a>())) {</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>     </div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>     PInfo = Visitor.<a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a98bcb092acfcc235af7c034ca4c03150">getInfo</a>(BinOp->getLHS());</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>     <span class="keywordflow">if</span> (!PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa9d1b66b38d088dc436bdb2c941e4b32">isVarTest</a>()) {</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>       <span class="keywordflow">if</span> ((BinOp = dyn_cast_or_null<BinaryOperator>(BinOp->getLHS()))) {</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>         PInfo = Visitor.<a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a98bcb092acfcc235af7c034ca4c03150">getInfo</a>(BinOp->getRHS());</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>         </div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>         <span class="keywordflow">if</span> (!PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa9d1b66b38d088dc436bdb2c941e4b32">isVarTest</a>())</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>           <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>         </div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>       }</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>     }</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>     </div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>     CurrStates->setSource(BinOp);</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>     FalseStates->setSource(BinOp);</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>     </div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>     <span class="keyword">const</span> VarTestResult &Test = PInfo.<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html#aa7e887a8c32215b7a4d9a270e1359117">getVarTest</a>();</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>     <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77">ConsumedState</a> VarState = CurrStates->getState(Test.Var);</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>     </div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>     <span class="keywordflow">if</span> (BinOp->getOpcode() == <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a30e5536f851a7efedefd1ca23a295741">BO_LAnd</a>) {</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>       <span class="keywordflow">if</span> (VarState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>)</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>         CurrStates->setState(Test.Var, Test.TestsFor);</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (VarState == <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(Test.TestsFor))</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>         CurrStates->markUnreachable();</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>       </div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (BinOp->getOpcode() == <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a7bc0171ddbb52333099a4774326d72c9">BO_LOr</a>) {</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>       <span class="keywordflow">if</span> (VarState == <a class="code" href="namespaceclang_1_1consumed.html#acaee577ec9f365f1eb7eafc869becd77a33637fd9b2f6a1f07b28bee8e931c481">CS_Unknown</a>)</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>         FalseStates->setState(Test.Var,</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>                               <a class="code" href="Consumed_8cpp.html#a152c017a6735cf0537ee27c58b38a5ff">invertConsumedUnconsumed</a>(Test.TestsFor));</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (VarState == Test.TestsFor)</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>         FalseStates->markUnreachable();</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>     }</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>     </div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>   }</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>   </div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>   <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock::const_succ_iterator</a> SI = CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>();</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>   </div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>   <span class="keywordflow">if</span> (*SI)</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>     BlockInfo.addInfo(*SI, CurrStates);</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>     <span class="keyword">delete</span> CurrStates;</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>     </div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>   <span class="keywordflow">if</span> (*++SI)</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>     BlockInfo.addInfo(*SI, FalseStates.take());</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>   </div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>   CurrStates = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> }</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> </div>
+<div class="line"><a name="l01405"></a><span class="lineno"><a class="code" href="classclang_1_1consumed_1_1ConsumedAnalyzer.html#a526c98ca903ea1970c65860fd7df1c4d"> 1405</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedAnalyzer.html#a526c98ca903ea1970c65860fd7df1c4d" title="Check a function's CFG for consumed violations.">ConsumedAnalyzer::run</a>(<a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC) {</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D = dyn_cast_or_null<FunctionDecl>(AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a186957365fe71ad94edd297ac9446ac9">getDecl</a>());</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>   <span class="keywordflow">if</span> (!D)</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>   </div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>   <a class="code" href="classclang_1_1CFG.html">CFG</a> *CFGraph = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>();</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>   <span class="keywordflow">if</span> (!CFGraph)</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> </div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>   determineExpectedReturnState(AC, D);</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> </div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>   <a class="code" href="classclang_1_1PostOrderCFGView.html">PostOrderCFGView</a> *SortedGraph = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#acf3028d1e3e7f6ec172d637961f592aa">getAnalysis</a><<a class="code" href="classclang_1_1PostOrderCFGView.html">PostOrderCFGView</a>>();</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>   <span class="comment">// AC.getCFG()->viewCFG(LangOptions());</span></div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>   </div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>   BlockInfo = <a class="code" href="classclang_1_1consumed_1_1ConsumedBlockInfo.html">ConsumedBlockInfo</a>(CFGraph-><a class="code" href="classclang_1_1CFG.html#a35bad5dfa501d6d2b2c570434c22727b">getNumBlockIDs</a>(), SortedGraph);</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>   </div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>   CurrStates = <span class="keyword">new</span> <a class="code" href="classclang_1_1consumed_1_1ConsumedStateMap.html">ConsumedStateMap</a>();</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>   <a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html">ConsumedStmtVisitor</a> Visitor(AC, *<span class="keyword">this</span>, CurrStates);</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>   </div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>   <span class="comment">// Add all trackable parameters to the state map.</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1FunctionDecl.html#acd4759dcc88e4125a177456fb575bf12">FunctionDecl::param_const_iterator</a> PI = D-><a class="code" href="classclang_1_1FunctionDecl.html#a48678562009dc8b21f0e4611eb96c433">param_begin</a>(),</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>        PE = D-><a class="code" href="classclang_1_1FunctionDecl.html#a1dc6d06fe673db5053adfa3160f3175f">param_end</a>(); PI != PE; ++PI) {</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>     Visitor.<a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2cf59f818e917610ad6b5356bdd85b2f">VisitParmVarDecl</a>(*PI);</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>   }</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>   </div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>   <span class="comment">// Visit all of the function's basic blocks.</span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1PostOrderCFGView.html#a0cc36c8aea4f9c36f3a2c95dbaf32ed6">PostOrderCFGView::iterator</a> I = SortedGraph-><a class="code" href="classclang_1_1PostOrderCFGView.html#a24690cde019309c3b2ea7bee32250a35">begin</a>(),</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>        E = SortedGraph-><a class="code" href="classclang_1_1PostOrderCFGView.html#aa7d580e4375e5122df17b37948120f15">end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>     </div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *CurrBlock = *I;</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>     </div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>     <span class="keywordflow">if</span> (CurrStates == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>       CurrStates = BlockInfo.getInfo(CurrBlock);</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>     </div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>     <span class="keywordflow">if</span> (!CurrStates) {</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>       </div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!CurrStates->isReachable()) {</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>       <span class="keyword">delete</span> CurrStates;</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>       CurrStates = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>     }</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>     </div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>     Visitor.<a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a59c278b325bbbcfdad7f9533b0f352d6">reset</a>(CurrStates);</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>     </div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>     <span class="comment">// Visit all of the basic block's statements.</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html#a464348f33435ca9aa27de9017f6dee88">CFGBlock::const_iterator</a> BI = CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#a6f23244410ba39354a8ce965328a7155">begin</a>(),</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>          BE = CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#acaa9a29bf0b724c80860bee0f663a07e">end</a>(); BI != BE; ++BI) {</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>       </div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>       <span class="keywordflow">switch</span> (BI->getKind()) {</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CFGElement.html#a3c498c8273bfd0c87134bfd590428395a5fe5a186caab5e8a3ddbbcddb68c20f8">CFGElement::Statement</a>:</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>         Visitor.<a class="code" href="classclang_1_1StmtVisitorBase.html#abbf5c352ff111ee7816595709731cc5f">Visit</a>(BI->castAs<<a class="code" href="classclang_1_1CFGStmt.html">CFGStmt</a>>().<a class="code" href="classclang_1_1CFGStmt.html#a5ee8e559b08d6f99d3476a3eca5eebdb">getStmt</a>());</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>         </div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CFGElement.html#a3c498c8273bfd0c87134bfd590428395ad43556be76de7360b750834a459d911b">CFGElement::TemporaryDtor</a>: {</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGTemporaryDtor.html">CFGTemporaryDtor</a> DTor = BI-><a class="code" href="classclang_1_1CFGElement.html#afd7ac15036c3d2bc76afe3433657ac96" title="Convert to the specified CFGElement type, asserting that this CFGElement is of the desired type...">castAs</a><<a class="code" href="classclang_1_1CFGTemporaryDtor.html">CFGTemporaryDtor</a>>();</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *BTE = DTor.<a class="code" href="classclang_1_1CFGTemporaryDtor.html#ace18015251ad427512865f2e8564b16c">getBindTemporaryExpr</a>();</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>         </div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>         Visitor.<a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2adcdd7a5088a4be4a85d4536d7a9b18">checkCallability</a>(<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(BTE),</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>                                  DTor.<a class="code" href="classclang_1_1CFGImplicitDtor.html#aa5d1145a212dd6bb00c03c9f15199258">getDestructorDecl</a>(AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#ab702d747ada83aab3ede6f08c9e32390">getASTContext</a>()),</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>                                  BTE->getExprLoc());</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>       }</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>       </div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CFGElement.html#a3c498c8273bfd0c87134bfd590428395aa874e18863ab62b7c0383cdf8de3512e">CFGElement::AutomaticObjectDtor</a>: {</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGAutomaticObjDtor.html">CFGAutomaticObjDtor</a> DTor = BI-><a class="code" href="classclang_1_1CFGElement.html#afd7ac15036c3d2bc76afe3433657ac96" title="Convert to the specified CFGElement type, asserting that this CFGElement is of the desired type...">castAs</a><<a class="code" href="classclang_1_1CFGAutomaticObjDtor.html">CFGAutomaticObjDtor</a>>();</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</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 = DTor.<a class="code" href="classclang_1_1CFGAutomaticObjDtor.html#a1f6eb41d074d07b355fd6583f37622d4">getTriggerStmt</a>()-><a class="code" href="classclang_1_1Stmt.html#acdd36e45abff718e8134873f9b7448ef">getLocEnd</a>();</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var = DTor.<a class="code" href="classclang_1_1CFGAutomaticObjDtor.html#a411f838a8d344cab9718a32d1945fa0a">getVarDecl</a>();</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>         </div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>         Visitor.<a class="code" href="classclang_1_1consumed_1_1ConsumedStmtVisitor.html#a2adcdd7a5088a4be4a85d4536d7a9b18">checkCallability</a>(<a class="code" href="classclang_1_1consumed_1_1PropagationInfo.html">PropagationInfo</a>(Var),</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>                                  DTor.<a class="code" href="classclang_1_1CFGImplicitDtor.html#aa5d1145a212dd6bb00c03c9f15199258">getDestructorDecl</a>(AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#ab702d747ada83aab3ede6f08c9e32390">getASTContext</a>()),</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>                                  Loc);</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>       }</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>       </div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>       <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>       }</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>     }</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>     </div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>     CurrStates->clearTemporaries();</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>     </div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>     <span class="comment">// TODO: Handle other forms of branching with precision, including while-</span></div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>     <span class="comment">//       and for-loops. (Deferred)</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>     <span class="keywordflow">if</span> (!splitState(CurrBlock, Visitor)) {</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>       CurrStates->setSource(<a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>       </div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>       <span class="keywordflow">if</span> (CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#a2b57cc985337076f6072ca63ceae400e">succ_size</a>() > 1 ||</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>           (CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#a2b57cc985337076f6072ca63ceae400e">succ_size</a>() == 1 &&</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>            (*CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>())->pred_size() > 1)) {</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>         </div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>         <span class="keywordtype">bool</span> OwnershipTaken = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>         </div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>         <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html">CFGBlock::const_succ_iterator</a> SI = CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>(),</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>              SE = CurrBlock-><a class="code" href="classclang_1_1CFGBlock.html#a1bcc002635a676581313a5e832b31cbc">succ_end</a>(); SI != SE; ++SI) {</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>           </div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>           <span class="keywordflow">if</span> (*SI == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>           </div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>           <span class="keywordflow">if</span> (BlockInfo.isBackEdge(CurrBlock, *SI)) {</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>             BlockInfo.borrowInfo(*SI)->intersectAtLoopHead(*SI, CurrBlock,</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>                                                            CurrStates,</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>                                                            WarningsHandler);</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>             </div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>             <span class="keywordflow">if</span> (BlockInfo.allBackEdgesVisited(*SI, CurrBlock))</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>               BlockInfo.discardInfo(*SI);</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>           } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>             BlockInfo.addInfo(*SI, CurrStates, OwnershipTaken);</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>           }</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>         }</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>         </div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>         <span class="keywordflow">if</span> (!OwnershipTaken)</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>           <span class="keyword">delete</span> CurrStates;</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>         </div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>         CurrStates = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>       }</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>     }</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>     </div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>     <span class="keywordflow">if</span> (CurrBlock == &AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>()-><a class="code" href="classclang_1_1CFG.html#a2ff1ea015dc3922825441ce7a2ec13b7">getExit</a>() &&</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>         D-><a class="code" href="classclang_1_1FunctionDecl.html#ac032681ca24174109591c0873f3ff471" title="Determine the type of an expression that calls this function.">getCallResultType</a>()-><a class="code" href="classclang_1_1Type.html#a0ee6d74a089fe24d755d9cfd8bceef3f">isVoidType</a>())</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>       CurrStates->checkParamsForReturnTypestate(D-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>(),</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>                                                 WarningsHandler);</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>   } <span class="comment">// End of block iterator.</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>   </div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>   <span class="comment">// Delete the last existing state map.</span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>   <span class="keyword">delete</span> CurrStates;</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>   </div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>   WarningsHandler.emitDiagnostics();</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> }</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> }} <span class="comment">// end namespace clang::consumed</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:30 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/Consumed_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Consumed_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Consumed_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Consumed_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,499 @@
+<!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: Consumed.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_c63c305ced188fe7fa423548af4807d3.html">Analysis</a></li><li class="navelem"><a class="el" href="dir_d475dbd19d31b48f9c4cacce35904903.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Consumed.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Consumed_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/Analysis/Release+Asserts/Consumed.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/Release+Asserts/Consumed.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  Consumed.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/RecursiveASTVisitor.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclFriend.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclTemplate.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclOpenMP.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtCXX.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtObjC.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtOpenMP.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtVisitor.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>/PostOrderCFGView.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/include/llvm/ADT/PostOrderIterator.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/include/llvm/ADT/BitVector.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/CFG.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/Support/BumpVector.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>/Consumed.h</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/APValue.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/Analysis/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.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/Compiler.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/Config/llvm-config.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/MathExtras.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/Support/SwapByteOrder.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/APSInt.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/PointerIntPair.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/Support/PointerLikeTypeTraits.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/PointerUnion.h:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OperatorKinds.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/tools/clang/lib/Analysis/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TokenKinds.def:</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/SmallString.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/Analysis/../../include/clang/Basic/PartialDiagnostic.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/Analysis/../../include/clang/Basic/Diagnostic.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/Analysis/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/Analysis/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.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/include/llvm/ADT/STLExtras.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/Analysis/../../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="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Specifiers.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/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ExternalASTSource.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/Analysis/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/NestedNameSpecifier.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/FoldingSet.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/Analysis/../../include/clang/AST/TemplateName.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/Analysis/../../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="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../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="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> /home/tstellar/llvm/include/llvm/ADT/Twine.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/include/llvm/Support/ErrorHandling.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/Analysis/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.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/Support/FileSystem.h:</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtIterator.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/Analysis/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/CommentCommandTraits.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/Analysis/../../include/clang/Basic/CommentOptions.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/Analysis/../../include/clang/AST/CommentCommandList.inc:</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/Analysis/../../include/clang/AST/PrettyPrinter.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/Analysis/../../include/clang/Basic/LangOptions.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/Analysis/../../include/clang/Basic/ObjCRuntime.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/Analysis/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OpenCLExtensions.def:</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/Analysis/../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/SourceManager.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/Analysis/../../include/clang/Basic/FileManager.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/Analysis/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/include/llvm/ADT/TinyPtrVector.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/Analysis/../../include/clang/AST/Attr.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/Analysis/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclCXX.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/Analysis/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/UnresolvedSet.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/Analysis/../../include/clang/AST/DeclAccessPair.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/Analysis/../../include/clang/AST/Expr.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/Analysis/../../include/clang/AST/OperationKinds.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/Analysis/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TypeTraits.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/Analysis/../../include/clang/Basic/Builtins.def:</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/Analysis/../../include/clang/AST/ExprCXX.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/Analysis/../../include/clang/Basic/ExpressionTraits.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/Analysis/../../include/clang/Basic/Lambda.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/Analysis/../../include/clang/AST/RecursiveASTVisitor.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/Analysis/../../include/clang/AST/DeclFriend.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/Analysis/../../include/clang/AST/DeclTemplate.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/Analysis/../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> </div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../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="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/Analysis/../../include/clang/AST/DeclOpenMP.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/Analysis/../../include/clang/AST/ExprObjC.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/Analysis/../../include/clang/AST/StmtCXX.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/Analysis/../../include/clang/AST/StmtObjC.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/Analysis/../../include/clang/AST/StmtOpenMP.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/Analysis/../../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/Analysis/../../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/Analysis/../../include/clang/AST/StmtVisitor.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/Analysis/../../include/clang/Analysis/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>/PostOrderCFGView.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/include/llvm/ADT/PostOrderIterator.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/GraphTraits.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/BitVector.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/Analysis/../../include/clang/Analysis/AnalysisContext.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/Analysis/../../include/clang/Analysis/CFG.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/Analysis/../../include/clang/Analysis/Support/BumpVector.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/Analysis/../../include/clang/Analysis/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>/Consumed.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:30 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>





More information about the llvm-commits mailing list