[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/Dominators_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Dominators_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Dominators_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Dominators_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,427 @@
+<!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: Dominators.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">Dominators.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Dominators_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/Dominators.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/Release+Asserts/Dominators.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  Dominators.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</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>/Dominators.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/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="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</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="l00061"></a><span class="lineno">   61</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="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/CFG.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/Support/BumpVector.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm/Analysis/DominatorInternals.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/include/llvm/Analysis/Dominators.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/include/llvm/ADT/DepthFirstIterator.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/include/llvm/IR/Function.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/include/llvm/IR/Argument.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/include/llvm/ADT/ilist_node.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/include/llvm/IR/Attributes.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/include/llvm/IR/<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/include/llvm/IR/Use.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/include/llvm/IR/BasicBlock.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/include/llvm/ADT/ilist.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/include/llvm/IR/Instruction.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/include/llvm/IR/User.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/include/llvm/Support/DebugLoc.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/include/llvm/IR/Instruction.def \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/include/llvm/IR/SymbolTableListTraits.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/include/llvm/IR/<a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a>.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/include/llvm/IR/GlobalValue.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/include/llvm/IR/Constant.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/IR/DerivedTypes.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/IR/Type.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/include/llvm/Pass.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/include/llvm/PassSupport.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/include/llvm/Pass.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/InitializePasses.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/include/llvm/PassRegistry.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/include/llvm/Support/Atomic.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/include/llvm/Support/Valgrind.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/include/llvm/PassAnalysisSupport.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/include/llvm/Support/CFG.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/include/llvm/IR/InstrTypes.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/include/llvm/IR/OperandTraits.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/include/llvm/IR/Module.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/include/llvm/IR/GlobalAlias.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/include/llvm/IR/GlobalVariable.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/include/llvm/IR/Metadata.h</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> /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>/Dominators.h:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/AnalysisContext.h:</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Decl.h:</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> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/APValue.h:</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> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/LLVM.h:</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> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</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> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</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> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.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/include/llvm/ADT/SmallVector.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/include/llvm/Support/AlignOf.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/include/llvm/Support/Compiler.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/include/llvm/Config/llvm-config.h:</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/include/llvm/Support/MathExtras.h:</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/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.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/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.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/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclarationName.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/tools/clang/lib/Analysis/../../include/clang/Basic/IdentifierTable.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/tools/clang/lib/Analysis/../../include/clang/Basic/OperatorKinds.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/tools/clang/lib/Analysis/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/TokenKinds.def:</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/ADT/SmallString.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/ADT/StringRef.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/ADT/StringMap.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/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/tools/clang/lib/Analysis/../../include/clang/Basic/PartialDiagnostic.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/tools/clang/lib/Analysis/../../include/clang/Basic/Diagnostic.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/tools/clang/lib/Analysis/../../include/clang/Basic/DiagnosticIDs.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/IntrusiveRefCntPtr.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/Basic/DiagnosticCommonKinds.inc:</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/Basic/DiagnosticOptions.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/Basic/DiagnosticOptions.def:</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/SourceLocation.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.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/<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="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/ExternalASTSource.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/AST/CharUnits.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/AST/Redeclarable.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/AST/Type.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/TemplateName.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/<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="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/<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="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/Optional.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/Twine.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/Support/ErrorHandling.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/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/BuiltinTypes.def:</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/raw_ostream.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/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/include/llvm/Support/system_error.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/Analysis/CFG.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/Stmt.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/DeclGroup.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/AST/StmtIterator.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/CapturedStmt.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> /home/tstellar/llvm/tools/clang/lib/Analysis/../../include/clang/Analysis/Support/BumpVector.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/ADT/GraphTraits.h:</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> /home/tstellar/llvm/include/llvm/Analysis/DominatorInternals.h:</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/Analysis/Dominators.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/DepthFirstIterator.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/IR/Function.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/IR/Argument.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> /home/tstellar/llvm/include/llvm/ADT/ilist_node.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> /home/tstellar/llvm/include/llvm/IR/Attributes.h:</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> /home/tstellar/llvm/include/llvm/IR/<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>.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/include/llvm/IR/Use.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/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> /home/tstellar/llvm/include/llvm/IR/BasicBlock.h:</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> /home/tstellar/llvm/include/llvm/ADT/ilist.h:</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> /home/tstellar/llvm/include/llvm/IR/Instruction.h:</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> /home/tstellar/llvm/include/llvm/IR/User.h:</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> /home/tstellar/llvm/include/llvm/Support/DebugLoc.h:</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> /home/tstellar/llvm/include/llvm/IR/Instruction.def:</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/include/llvm/IR/SymbolTableListTraits.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/include/llvm/IR/<a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a>.h:</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> /home/tstellar/llvm/include/llvm/IR/GlobalValue.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/IR/Constant.h:</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> /home/tstellar/llvm/include/llvm/IR/DerivedTypes.h:</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> /home/tstellar/llvm/include/llvm/IR/Type.h:</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> /home/tstellar/llvm/include/llvm/Pass.h:</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> /home/tstellar/llvm/include/llvm/PassSupport.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/include/llvm/Pass.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/include/llvm/InitializePasses.h:</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> /home/tstellar/llvm/include/llvm/PassRegistry.h:</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> /home/tstellar/llvm/include/llvm/Support/Atomic.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/Valgrind.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/PassAnalysisSupport.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/Support/CFG.h:</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> /home/tstellar/llvm/include/llvm/IR/InstrTypes.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/IR/OperandTraits.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/IR/Module.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/include/llvm/IR/GlobalAlias.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/include/llvm/IR/GlobalVariable.h:</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> /home/tstellar/llvm/include/llvm/IR/Metadata.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/Dominators_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Dominators_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Dominators_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Dominators_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,290 @@
+<!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: Dominators.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_08cb8dd42fdabd3361bfbdc9f41acf33.html">Analysis</a></li><li class="navelem"><a class="el" href="dir_b4fe6fb44b150d8be57689f1bc720b21.html">Analyses</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Dominators.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Dominators_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">//==- Dominators.h - Implementation of dominators tree for Clang CFG C++ -*-==//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This file implements the dominators tree functionality for Clang CFGs.</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_DOMINATORS_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_DOMINATORS_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="AnalysisContext_8h.html">clang/Analysis/AnalysisContext.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="CFG_8h.html">clang/Analysis/CFG.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/ADT/GraphTraits.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/Analysis/DominatorInternals.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/Analysis/Dominators.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/IR/Module.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">   26</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keyword">typedef</span> llvm::DomTreeNodeBase<CFGBlock> <a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">DomTreeNode</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment"></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">/// \brief Concrete subclass of DominatorTreeBase for Clang</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">/// This class implements the dominators tree functionality given a Clang CFG.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html">   32</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1DominatorTree.html" title="Concrete subclass of DominatorTreeBase for Clang This class implements the dominators tree functional...">DominatorTree</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ManagedAnalysis.html">ManagedAnalysis</a> {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">   35</a></span>   llvm::DominatorTreeBase<CFGBlock>* <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#aca224878732e88b587b880b9d6cbe678">   37</a></span>   <a class="code" href="classclang_1_1DominatorTree.html#aca224878732e88b587b880b9d6cbe678">DominatorTree</a>() {</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a> = <span class="keyword">new</span> llvm::DominatorTreeBase<CFGBlock>(<span class="keyword">false</span>);</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> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a35fd9d366656384847631e8e13ac49fe">   41</a></span>   <a class="code" href="classclang_1_1DominatorTree.html#a35fd9d366656384847631e8e13ac49fe">~DominatorTree</a>() {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>     <span class="keyword">delete</span> <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a2599f9f03a78244a39ed9baca8202be4">   45</a></span>   llvm::DominatorTreeBase<CFGBlock>& <a class="code" href="classclang_1_1DominatorTree.html#a2599f9f03a78244a39ed9baca8202be4">getBase</a>() { <span class="keywordflow">return</span> *<a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>; }</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">  /// \brief This method returns the root CFGBlock of the dominators tree.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a6ef8bbe9a6cfe04c3cd798014b9bc903">   49</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *<a class="code" href="classclang_1_1DominatorTree.html#a6ef8bbe9a6cfe04c3cd798014b9bc903" title="This method returns the root CFGBlock of the dominators tree.">getRoot</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->getRoot();</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   }</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment"></span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">  /// \brief This method returns the root DomTreeNode, which is the wrapper</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">  /// for CFGBlock.</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a21e27c5982d3a245653e99b4dc68db79">   55</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">DomTreeNode</a> *<a class="code" href="classclang_1_1DominatorTree.html#a21e27c5982d3a245653e99b4dc68db79" title="This method returns the root DomTreeNode, which is the wrapper for CFGBlock.">getRootNode</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->getRootNode();</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">  /// \brief This method compares two dominator trees.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">  /// The method returns false if the other dominator tree matches this</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">  /// dominator tree, otherwise returns true.</span></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"><a class="code" href="classclang_1_1DominatorTree.html#a8613c3cfaa6cfbd8cf87783576d8a52e">   63</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1DominatorTree.html#a8613c3cfaa6cfbd8cf87783576d8a52e" title="This method compares two dominator trees. The method returns false if the other dominator tree matche...">compare</a>(<a class="code" href="classclang_1_1DominatorTree.html" title="Concrete subclass of DominatorTreeBase for Clang This class implements the dominators tree functional...">DominatorTree</a> &Other)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     <a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">DomTreeNode</a> *R = <a class="code" href="classclang_1_1DominatorTree.html#a21e27c5982d3a245653e99b4dc68db79" title="This method returns the root DomTreeNode, which is the wrapper for CFGBlock.">getRootNode</a>();</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>     <a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">DomTreeNode</a> *OtherR = Other.<a class="code" href="classclang_1_1DominatorTree.html#a21e27c5982d3a245653e99b4dc68db79" title="This method returns the root DomTreeNode, which is the wrapper for CFGBlock.">getRootNode</a>();</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>     <span class="keywordflow">if</span> (!R || !OtherR || R->getBlock() != OtherR->getBlock())</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->compare(Other.<a class="code" href="classclang_1_1DominatorTree.html#a2599f9f03a78244a39ed9baca8202be4">getBase</a>()))</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   }</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment"></span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">  /// \brief This method builds the dominator tree for a given CFG</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">  /// The CFG information is passed via AnalysisDeclContext</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a64b94cc33569ab5f87fff14b0ee93254">   79</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1DominatorTree.html#a64b94cc33569ab5f87fff14b0ee93254" title="This method builds the dominator tree for a given CFG The CFG information is passed via AnalysisDeclC...">buildDominatorTree</a>(<a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC) {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>     cfg = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>();</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>     <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->recalculate(*cfg);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   }</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment"></span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">  /// \brief This method dumps immediate dominators for each block,</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">  /// mainly used for debug purposes.</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a31bc8c8621884e60cc34bb071d34440e">   87</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1DominatorTree.html#a31bc8c8621884e60cc34bb071d34440e" title="This method dumps immediate dominators for each block, mainly used for debug purposes.">dump</a>() {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>     llvm::errs() << <span class="stringliteral">"Immediate dominance tree (Node#,IDom#):\n"</span>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html">CFG::const_iterator</a> I = cfg-><a class="code" href="classclang_1_1CFG.html#a908c392e8ab90beaa7dd0dc70b8e2ab2">begin</a>(),</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>         E = cfg-><a class="code" href="classclang_1_1CFG.html#a2013eeb0c97e5c50514c9ca54d00c621">end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>       <span class="keywordflow">if</span>(<a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->getNode(*I)->getIDom())</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>         llvm::errs() << <span class="stringliteral">"("</span> << (*I)->getBlockID()</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>                      << <span class="stringliteral">","</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>                      << <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->getNode(*I)->getIDom()->getBlock()->getBlockID()</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>                      << <span class="stringliteral">")\n"</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>       <span class="keywordflow">else</span> llvm::errs() << <span class="stringliteral">"("</span> << (*I)->getBlockID()</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>                         << <span class="stringliteral">","</span> << (*I)->getBlockID() << <span class="stringliteral">")\n"</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>   }</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment"></span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">  /// \brief This method tests if one CFGBlock dominates the other.</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">  /// The method return true if A dominates B, false otherwise.</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">  /// Note a block always dominates itself.</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"><a class="code" href="classclang_1_1DominatorTree.html#a92b9bb075c4f9fb4e9a3556d36046818">  105</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1DominatorTree.html#a92b9bb075c4f9fb4e9a3556d36046818" title="This method tests if one CFGBlock dominates the other. The method return true if A dominates B...">dominates</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a>* A, <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a>* B)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->dominates(A, B);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   }</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment"></span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">  /// \brief This method tests if one CFGBlock properly dominates the other.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">  /// The method return true if A properly dominates B, false otherwise.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a783424fe20abd77045d02d1b7bad15eb">  112</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1DominatorTree.html#a783424fe20abd77045d02d1b7bad15eb" title="This method tests if one CFGBlock properly dominates the other. The method return true if A properly ...">properlyDominates</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a>*A, <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a>*B)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->properlyDominates(A, B);</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="comment"></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">  /// \brief This method finds the nearest common dominator CFG block</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">  /// for CFG block A and B. If there is no such block then return NULL.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a2dd3fe92a339f81de45764acacb90a6b">  119</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *<a class="code" href="classclang_1_1DominatorTree.html#a2dd3fe92a339f81de45764acacb90a6b" title="This method finds the nearest common dominator CFG block for CFG block A and B. If there is no such b...">findNearestCommonDominator</a>(<a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *A, <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *B) {</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->findNearestCommonDominator(A, B);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   }</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a3ff3ff4fa7c93b2bea66fe4913bacf03">  123</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *<a class="code" href="classclang_1_1DominatorTree.html#a2dd3fe92a339f81de45764acacb90a6b" title="This method finds the nearest common dominator CFG block for CFG block A and B. If there is no such b...">findNearestCommonDominator</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *A,</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>                                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *B) {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->findNearestCommonDominator(A, B);</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="comment"></span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">  /// \brief This method is used to update the dominator</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">  /// tree information when a node's immediate dominator changes.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#a6fd548e8f974e74496e9a998c14cb521">  131</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1DominatorTree.html#a6fd548e8f974e74496e9a998c14cb521" title="This method is used to update the dominator tree information when a node's immediate dominator change...">changeImmediateDominator</a>(<a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *N, <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *NewIDom) {</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>     <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->changeImmediateDominator(N, NewIDom);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>   }</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment"></span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">  /// \brief This method tests if the given CFGBlock can be reachable from root.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">  /// Returns true if reachable, false otherwise.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#ab78dc1e7143ee833b625e2e62ecd4aee">  138</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1DominatorTree.html#ab78dc1e7143ee833b625e2e62ecd4aee" title="This method tests if the given CFGBlock can be reachable from root. Returns true if reachable...">isReachableFromEntry</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *A) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->isReachableFromEntry(A);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   }</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment"></span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  /// \brief This method releases the memory held by the dominator tree.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#ac04befd61132d0e571988cfc0cecbdeb">  144</a></span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1DominatorTree.html#ac04befd61132d0e571988cfc0cecbdeb" title="This method releases the memory held by the dominator tree.">releaseMemory</a>() {</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>     <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->releaseMemory();</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   }</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment"></span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">  /// \brief This method converts the dominator tree to human readable form.</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classclang_1_1DominatorTree.html#ae60515cba4c76e06ae6c50676cd5176b">  150</a></span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1DominatorTree.html#ae60515cba4c76e06ae6c50676cd5176b" title="This method converts the dominator tree to human readable form.">print</a>(raw_ostream &OS, <span class="keyword">const</span> llvm::Module* M= 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     <a class="code" href="classclang_1_1DominatorTree.html#aa1321110d5a39a173e438a771a87e4f1">DT</a>->print(OS);</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> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   <a class="code" href="classclang_1_1CFG.html">CFG</a> *cfg;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> };</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="namespaceclang.html#a383027bef2dc612ba9c2c2b476e4004c">  158</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceclang.html#a383027bef2dc612ba9c2c2b476e4004c">WriteAsOperand</a>(raw_ostream &OS, <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *BB,</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>                           <span class="keywordtype">bool</span> t) {</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>   OS << <span class="stringliteral">"BB#"</span> << BB-><a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>();</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> </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">//===-------------------------------------</span><span class="comment"></span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">/// DominatorTree GraphTraits specialization so the DominatorTree can be</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">/// iterable by generic graph iterators.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"><a class="code" href="namespacellvm.html">  169</a></span> <span class="comment"></span><span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html">  170</a></span> <span class="keyword">template</span> <> <span class="keyword">struct </span>GraphTraits< ::<a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">clang::DomTreeNode</a>* > {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a8d267ffd8ccc19ec40ec38b637153d39">  171</a></span>   <a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">typedef ::clang::DomTreeNode</a> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a8d267ffd8ccc19ec40ec38b637153d39">NodeType</a>;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#aba384fb74cdab0b975098d363a9b721c">  172</a></span>   <span class="keyword">typedef</span> NodeType::iterator  <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#aba384fb74cdab0b975098d363a9b721c">ChildIteratorType</a>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a031232db44fb57459e923275bb1e8089">  174</a></span>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a8d267ffd8ccc19ec40ec38b637153d39">NodeType</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a031232db44fb57459e923275bb1e8089">getEntryNode</a>(<a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a8d267ffd8ccc19ec40ec38b637153d39">NodeType</a> *N) {</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     <span class="keywordflow">return</span> N;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#ac1650eeca14de12e016c765f373c7b4b">  177</a></span>   <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#aba384fb74cdab0b975098d363a9b721c">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#ac1650eeca14de12e016c765f373c7b4b">child_begin</a>(<a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a8d267ffd8ccc19ec40ec38b637153d39">NodeType</a> *N) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>     <span class="keywordflow">return</span> N->begin();</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="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a11af751da4eab20b8427e152c32bb2f9">  180</a></span>   <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#aba384fb74cdab0b975098d363a9b721c">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a11af751da4eab20b8427e152c32bb2f9">child_end</a>(<a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a8d267ffd8ccc19ec40ec38b637153d39">NodeType</a> *N) {</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     <span class="keywordflow">return</span> N->end();</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"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a4fc8697ea86fa8f109b3867e7c7c64cd">  184</a></span>   <span class="keyword">typedef</span> df_iterator< ::clang::DomTreeNode* > <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a4fc8697ea86fa8f109b3867e7c7c64cd">nodes_iterator</a>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#ae3fdebe300a9d95b6377529a74da4df5">  186</a></span>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a4fc8697ea86fa8f109b3867e7c7c64cd">nodes_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#ae3fdebe300a9d95b6377529a74da4df5">nodes_begin</a>(::<a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">clang::DomTreeNode</a> *N) {</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>     <span class="keywordflow">return</span> df_begin(getEntryNode(N));</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> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a0aee721c24c430e5a139c203492e5b92">  190</a></span>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a4fc8697ea86fa8f109b3867e7c7c64cd">nodes_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a0aee721c24c430e5a139c203492e5b92">nodes_end</a>(::<a class="code" href="namespaceclang.html#a6b527739e797bb7d69948da09db6a217">clang::DomTreeNode</a> *N) {</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>     <span class="keywordflow">return</span> df_end(getEntryNode(N));</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> };</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DominatorTree_01_5_01_4.html">  195</a></span> <span class="keyword">template</span> <> <span class="keyword">struct </span>GraphTraits< ::<a class="code" href="classclang_1_1DominatorTree.html" title="Concrete subclass of DominatorTreeBase for Clang This class implements the dominators tree functional...">clang::DominatorTree</a>* ></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>   : <span class="keyword">public</span> GraphTraits< ::clang::DomTreeNode* > {</div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DominatorTree_01_5_01_4.html#a8a9ee9f2f007b6c465ba4292569139b4">  197</a></span>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a8d267ffd8ccc19ec40ec38b637153d39">NodeType</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DominatorTree_01_5_01_4.html#a8a9ee9f2f007b6c465ba4292569139b4">getEntryNode</a>(::<a class="code" href="classclang_1_1DominatorTree.html" title="Concrete subclass of DominatorTreeBase for Clang This class implements the dominators tree functional...">clang::DominatorTree</a> *DT) {</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     <span class="keywordflow">return</span> DT-><a class="code" href="classclang_1_1DominatorTree.html#a21e27c5982d3a245653e99b4dc68db79" title="This method returns the root DomTreeNode, which is the wrapper for CFGBlock.">getRootNode</a>();</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>   }</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DominatorTree_01_5_01_4.html#a94bfc316c38a04366cc1741c37088312">  201</a></span>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a4fc8697ea86fa8f109b3867e7c7c64cd">nodes_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DominatorTree_01_5_01_4.html#a94bfc316c38a04366cc1741c37088312">nodes_begin</a>(::<a class="code" href="classclang_1_1DominatorTree.html" title="Concrete subclass of DominatorTreeBase for Clang This class implements the dominators tree functional...">clang::DominatorTree</a> *N) {</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>     <span class="keywordflow">return</span> df_begin(getEntryNode(N));</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> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DominatorTree_01_5_01_4.html#a6a67a9a5b4fc4603b5ed501375b9332d">  205</a></span>   <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DomTreeNode_01_5_01_4.html#a4fc8697ea86fa8f109b3867e7c7c64cd">nodes_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01_1_1clang_1_1DominatorTree_01_5_01_4.html#a6a67a9a5b4fc4603b5ed501375b9332d">nodes_end</a>(::<a class="code" href="classclang_1_1DominatorTree.html" title="Concrete subclass of DominatorTreeBase for Clang This class implements the dominators tree functional...">clang::DominatorTree</a> *N) {</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>     <span class="keywordflow">return</span> df_end(getEntryNode(N));</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> };</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> } <span class="comment">// end namespace llvm</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/DriverDiagnostic_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverDiagnostic_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverDiagnostic_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverDiagnostic_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,107 @@
+<!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: DriverDiagnostic.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_21b2f75600cfba94559a3417605488ac.html">Driver</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">DriverDiagnostic.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="DriverDiagnostic_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">//===--- DiagnosticDriver.h - Diagnostics for libdriver ---------*- 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_DRIVERDIAGNOSTIC_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_DRIVERDIAGNOSTIC_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="Diagnostic_8h.html" title="Defines the Diagnostic-related interfaces.">clang/Basic/Diagnostic.h</a>"</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="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>   <span class="keyword">namespace </span>diag {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>     <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="code" href="DriverDiagnostic_8h.html#a628471a2bdbc3c1b61ce5b3b44f8bd20">   18</a></span> <span class="preprocessor">#define DIAG(ENUM,FLAGS,DEFAULT_MAPPING,DESC,GROUP,\</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">             SFINAE,NOWERROR,SHOWINSYSHEADER,CATEGORY) ENUM,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="code" href="DriverDiagnostic_8h.html#aa0fb62d50a8d69f2c2b51f8e6a38af38">   20</a></span> <span class="preprocessor"></span><span class="preprocessor">#define DRIVERSTART</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="DiagnosticDriverKinds_8inc.html">clang/Basic/DiagnosticDriverKinds.inc</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#undef DIAG</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="namespaceclang_1_1diag.html#ac2c7e94056d54a01a587e69bcf636d20ad670c9d2a4bdfa956d3143e6fcc9948e">   23</a></span> <span class="preprocessor"></span>      <a class="code" href="namespaceclang_1_1diag.html#ac2c7e94056d54a01a587e69bcf636d20a3502c13dc81e5150499dfc0981247e15">NUM_BUILTIN_DRIVER_DIAGNOSTICS</a></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="comment">// end namespace diag</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> }  <span class="comment">// end namespace clang</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">   28</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/DriverOptions_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverOptions_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverOptions_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverOptions_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,123 @@
+<!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: DriverOptions.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_79a4e43f5883e96ea4f45c2e67339e2c.html">Driver</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">DriverOptions.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="DriverOptions_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">//===--- DriverOptions.cpp - Driver Options Table -------------------------===//</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="Options_8h.html">clang/Driver/Options.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor">#include "llvm/ADT/STLExtras.h"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include "llvm/Option/OptTable.h"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="preprocessor">#include "llvm/Option/Option.h"</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="keyword">using namespace </span>clang::driver;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="keyword">using namespace </span>clang::driver::options;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">using namespace </span>llvm::opt;</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="DriverOptions_8cpp.html#a1851637656d03b0a73277a46b0e7b30f">   19</a></span> <span class="preprocessor">#define PREFIX(NAME, VALUE) static const char *const NAME[] = VALUE;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="Options_8inc.html">clang/Driver/Options.inc</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#undef PREFIX</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="DriverOptions_8cpp.html#a43511979e9955d03751597a9db1510fa">   23</a></span> <span class="keyword">static</span> <span class="keyword">const</span> OptTable::Info <a class="code" href="DriverOptions_8cpp.html#a43511979e9955d03751597a9db1510fa">InfoTable</a>[] = {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">               HELPTEXT, METAVAR)   \</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">  { PREFIX, NAME, HELPTEXT, METAVAR, OPT_##ID, Option::KIND##Class, PARAM, \</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">    FLAGS, OPT_##GROUP, OPT_##ALIAS, ALIASARGS },</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="Options_8inc.html">clang/Driver/Options.inc</a>"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#undef OPTION</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor"></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>{</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">class </span>DriverOptTable : <span class="keyword">public</span> OptTable {</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   DriverOptTable()</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     : OptTable(<a class="code" href="DriverOptions_8cpp.html#a43511979e9955d03751597a9db1510fa">InfoTable</a>, llvm::array_lengthof(<a class="code" href="DriverOptions_8cpp.html#a43511979e9955d03751597a9db1510fa">InfoTable</a>)) {}</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> };</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> }</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="namespaceclang_1_1driver.html#ac2485a979e2a532b08f76fe7c7988a9e">   42</a></span> OptTable *<a class="code" href="namespaceclang_1_1driver.html#ac2485a979e2a532b08f76fe7c7988a9e">clang::driver::createDriverOptTable</a>() {</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> DriverOptTable();</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/DriverOptions_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverOptions_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverOptions_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DriverOptions_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,139 @@
+<!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: DriverOptions.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_79a4e43f5883e96ea4f45c2e67339e2c.html">Driver</a></li><li class="navelem"><a class="el" href="dir_7586acc61ec3e12e4bc52d53567f5268.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">DriverOptions.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="DriverOptions_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/Driver/Release+Asserts/DriverOptions.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Driver/Release+Asserts/DriverOptions.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  DriverOptions.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.inc \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Option/OptTable.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Option/Option.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h</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> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.h:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.inc:</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> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> /home/tstellar/llvm/include/llvm/Option/OptTable.h:</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> /home/tstellar/llvm/include/llvm/ADT/StringSet.h:</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</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> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h:</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> /home/tstellar/llvm/include/llvm/Option/Option.h:</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/Driver_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,2140 @@
+<!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: Driver.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_79a4e43f5883e96ea4f45c2e67339e2c.html">Driver</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Driver.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Driver_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">//===--- Driver.cpp - Clang GCC Compatible Driver -------------------------===//</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="Driver_8h.html">clang/Driver/Driver.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor">#include "<a class="code" href="InputInfo_8h.html">InputInfo.h</a>"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include "<a class="code" href="ToolChains_8h.html">ToolChains.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="Action_8h.html">clang/Driver/Action.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="Compilation_8h.html">clang/Driver/Compilation.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="DriverDiagnostic_8h.html">clang/Driver/DriverDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="Job_8h.html">clang/Driver/Job.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">clang/Driver/Options.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="Tool_8h.html">clang/Driver/Tool.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="ToolChain_8h.html">clang/Driver/ToolChain.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/ArrayRef.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/STLExtras.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/ADT/StringSet.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/Option/Arg.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "llvm/Option/ArgList.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "llvm/Option/OptTable.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "llvm/Option/Option.h"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "llvm/Option/OptSpecifier.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include "llvm/Support/Debug.h"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "llvm/Support/FileSystem.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/PrettyStackTrace.h"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="preprocessor">#include "llvm/Support/Program.h"</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="preprocessor">#include <map></span></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">// FIXME: It would prevent us from including llvm-config.h</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">// if config.h were included before system_error.h.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="preprocessor">#include "<a class="code" href="config_8h.html">clang/Config/config.h</a>"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="keyword">using namespace </span>clang::driver;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="keyword">using namespace </span>llvm::opt;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a7163378e946981543be6df0fd4016bcc">   48</a></span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a7163378e946981543be6df0fd4016bcc">Driver::Driver</a>(StringRef ClangExecutable,</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>                StringRef DefaultTargetTriple,</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>                StringRef DefaultImageName,</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</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="l00052"></a><span class="lineno">   52</span>   : Opts(<a class="code" href="namespaceclang_1_1driver.html#ac2485a979e2a532b08f76fe7c7988a9e">createDriverOptTable</a>()), Diags(Diags), Mode(GCCMode),</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     ClangExecutable(ClangExecutable), SysRoot(<a class="code" href="config_8h.html#ac91d7cb5804030d0d08c03e9efa00107">DEFAULT_SYSROOT</a>),</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     UseStdLib(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>), DefaultTargetTriple(DefaultTargetTriple),</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     DefaultImageName(DefaultImageName),</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     DriverTitle(<span class="stringliteral">"clang LLVM compiler"</span>),</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>     CCPrintOptionsFilename(0), CCPrintHeadersFilename(0),</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>     CCLogDiagnosticsFilename(0),</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>     CCCPrintBindings(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>     CCPrintHeaders(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), CCLogDiagnostics(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>     CCGenDiagnostics(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), CCCGenericGCCName(<span class="stringliteral">""</span>), CheckInputsExist(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>),</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>     CCCUsePCH(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>), SuppressMissingInputWarning(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a> = llvm::sys::path::stem(ClangExecutable);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#ac2e921652102bc5ebed73ac600f1e63c">Dir</a>  = llvm::sys::path::parent_path(ClangExecutable);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="comment">// Compute the path to the resource directory.</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   StringRef ClangResourceDir(<a class="code" href="config_8h.html#abdaa4b68f2d7573d068671c842c72c6d">CLANG_RESOURCE_DIR</a>);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(<a class="code" href="classclang_1_1driver_1_1Driver.html#ac2e921652102bc5ebed73ac600f1e63c">Dir</a>);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <span class="keywordflow">if</span> (ClangResourceDir != <span class="stringliteral">""</span>)</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     llvm::sys::path::append(P, ClangResourceDir);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     llvm::sys::path::append(P, <span class="stringliteral">".."</span>, <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="l00074"></a><span class="lineno">   74</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#ab6e86cc00f556e22bb9f89d07bfcc065" title="The path to the compiler resource directory.">ResourceDir</a> = P.str();</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> }</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#ac7645eea8d3ce2bc39ddbda5e840297a">   77</a></span> <a class="code" href="classclang_1_1driver_1_1Driver.html#ac7645eea8d3ce2bc39ddbda5e840297a">Driver::~Driver</a>() {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   <span class="keyword">delete</span> Opts;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <span class="keywordflow">for</span> (llvm::StringMap<ToolChain *>::iterator I = ToolChains.begin(),</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>                                               E = ToolChains.end();</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>        I != E; ++I)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>     <span class="keyword">delete</span> I->second;</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"><a class="code" href="classclang_1_1driver_1_1Driver.html#aae406dd01e7c7985fe55fed70155ab7d">   86</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#aae406dd01e7c7985fe55fed70155ab7d" title="ParseDriverMode - Look for and handle the driver mode option in Args.">Driver::ParseDriverMode</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const char *></a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) {</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>   <span class="keyword">const</span> std::string OptName =</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#adb951221317e3bec4b66897fac2625db">getOpts</a>().getOption(options::OPT_driver_mode).getPrefixedName();</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">for</span> (<span class="keywordtype">size_t</span> I = 0, E = Args.size(); I != E; ++I) {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>     <span class="keyword">const</span> StringRef Arg = Args[I];</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     <span class="keywordflow">if</span> (!Arg.startswith(OptName))</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     <span class="keyword">const</span> StringRef <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = Arg.drop_front(OptName.size());</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> M = llvm::StringSwitch<unsigned>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>)</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>         .Case(<span class="stringliteral">"gcc"</span>, GCCMode)</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>         .Case(<span class="stringliteral">"g++"</span>, GXXMode)</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>         .Case(<span class="stringliteral">"cpp"</span>, CPPMode)</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>         .Case(<span class="stringliteral">"cl"</span>,  CLMode)</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>         .Default(~0U);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>     <span class="keywordflow">if</span> (M != ~0U)</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>       Mode = <span class="keyword">static_cast<</span>DriverMode<span class="keyword">></span>(M);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(diag::err_drv_unsupported_option_argument) << OptName << <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</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">  109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a32cdbd9e9abbcd0ad6b651f5cecb8a5b">  110</a></span> InputArgList *<a class="code" href="classclang_1_1driver_1_1Driver.html#a32cdbd9e9abbcd0ad6b651f5cecb8a5b">Driver::ParseArgStrings</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const char *></a> ArgList) {</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   llvm::PrettyStackTraceString CrashInfo(<span class="stringliteral">"Command line argument parsing"</span>);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   <span class="keywordtype">unsigned</span> IncludedFlagsBitmask;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   <span class="keywordtype">unsigned</span> ExcludedFlagsBitmask;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   llvm::tie(IncludedFlagsBitmask, ExcludedFlagsBitmask) =</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     getIncludeExcludeOptionFlagMasks();</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>   <span class="keywordtype">unsigned</span> MissingArgIndex, MissingArgCount;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   InputArgList *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a> = <a class="code" href="classclang_1_1driver_1_1Driver.html#adb951221317e3bec4b66897fac2625db">getOpts</a>().ParseArgs(ArgList.begin(), ArgList.end(),</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>                                            MissingArgIndex, MissingArgCount,</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>                                            IncludedFlagsBitmask,</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>                                            ExcludedFlagsBitmask);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>   <span class="comment">// Check for missing argument error.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   <span class="keywordflow">if</span> (MissingArgCount)</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_missing_argument)</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>       << Args->getArgString(MissingArgIndex) << MissingArgCount;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   <span class="comment">// Check for unsupported options.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <span class="keywordflow">for</span> (ArgList::const_iterator it = Args->begin(), ie = Args->end();</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>        it != ie; ++it) {</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>     Arg *A = *it;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>     <span class="keywordflow">if</span> (A->getOption().hasFlag(<a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2a20cbbfa924e5ea140b1a8e7a601c3dd9">options::Unsupported</a>)) {</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_unsupported_opt) << A->getAsString(*Args);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>     }</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="comment">// Warn about -mcpu= without an argument.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_mcpu_EQ) &&</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>         A->containsValue(<span class="stringliteral">""</span>)) {</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::warn_drv_empty_joined_argument) <<</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>         A->getAsString(*Args);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>     }</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>   }</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   <span class="keywordflow">for</span> (arg_iterator it = Args->filtered_begin(options::OPT_UNKNOWN),</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>          ie = Args->filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</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="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>   <span class="keywordflow">return</span> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</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> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">// Determine which compilation mode we are in. We look for options which</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">// affect the phase, starting with the earliest phases, and record which</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">// option we used to determine the final phase.</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8">phases::ID</a> Driver::getFinalPhase(<span class="keyword">const</span> DerivedArgList &DAL, Arg **FinalPhaseArg)<span class="keyword"></span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="keyword">const </span>{</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   Arg *PhaseArg = 0;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>   <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8">phases::ID</a> FinalPhase;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="comment">// -{E,M,MM} only run the preprocessor.</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a515bd8fef2b4a0e0fb2ad32b990383d8" title="Whether the driver is just the preprocessor.">CCCIsCPP</a>() ||</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>       (PhaseArg = DAL.getLastArg(options::OPT_E)) ||</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>       (PhaseArg = DAL.getLastArg(options::OPT_M, options::OPT_MM))) {</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>     FinalPhase = <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a892c41825dd2d3e10f35a90d530fa761">phases::Preprocess</a>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>     <span class="comment">// -{fsyntax-only,-analyze,emit-ast,S} only run up to the compiler.</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((PhaseArg = DAL.getLastArg(options::OPT_fsyntax_only)) ||</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>              (PhaseArg = DAL.getLastArg(options::OPT_module_file_info)) ||</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>              (PhaseArg = DAL.getLastArg(options::OPT_rewrite_objc)) ||</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>              (PhaseArg = DAL.getLastArg(options::OPT_rewrite_legacy_objc)) ||</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>              (PhaseArg = DAL.getLastArg(options::OPT__migrate)) ||</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>              (PhaseArg = DAL.getLastArg(options::OPT__analyze,</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>                                         options::OPT__analyze_auto)) ||</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>              (PhaseArg = DAL.getLastArg(options::OPT_emit_ast)) ||</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>              (PhaseArg = DAL.getLastArg(options::OPT_S))) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>     FinalPhase = <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a2636537795ed6b6b800e00e17c555598">phases::Compile</a>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>     <span class="comment">// -c only runs up to the assembler.</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((PhaseArg = DAL.getLastArg(options::OPT_c))) {</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     FinalPhase = <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a065278bafce3ab7afc1c606bc9d5383f">phases::Assemble</a>;</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="comment">// Otherwise do everything.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>   } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     FinalPhase = <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a359521bf3e6cea8540bc8688a66b5d27">phases::Link</a>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>   <span class="keywordflow">if</span> (FinalPhaseArg)</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>     *FinalPhaseArg = PhaseArg;</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   <span class="keywordflow">return</span> FinalPhase;</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> </div>
+<div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="Driver_8cpp.html#acbc177d02635f7ec3a9d5d005669b638">  194</a></span> <span class="keyword">static</span> Arg* <a class="code" href="Driver_8cpp.html#acbc177d02635f7ec3a9d5d005669b638">MakeInputArg</a>(<span class="keyword">const</span> DerivedArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, OptTable *Opts,</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>                          StringRef <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>   Arg *A = <span class="keyword">new</span> Arg(Opts->getOption(options::OPT_INPUT), <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>,</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>                    Args.getBaseArgs().MakeIndex(Value), Value.data());</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>   A->claim();</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>   <span class="keywordflow">return</span> A;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> }</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> DerivedArgList *Driver::TranslateInputArgs(<span class="keyword">const</span> InputArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>   DerivedArgList *DAL = <span class="keyword">new</span> DerivedArgList(Args);</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>   <span class="keywordtype">bool</span> HasNostdlib = Args.hasArg(options::OPT_nostdlib);</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>   <span class="keywordflow">for</span> (ArgList::const_iterator it = Args.begin(),</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>          ie = Args.end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>     <span class="comment">// Unfortunately, we have to parse some forwarding options (-Xassembler,</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>     <span class="comment">// -Xlinker, -Xpreprocessor) because we either integrate their functionality</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>     <span class="comment">// (assembler and preprocessor), or bypass a previous driver ('collect2').</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>     <span class="comment">// Rewrite linker options, to replace --no-demangle with a custom internal</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>     <span class="comment">// option.</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>     <span class="keywordflow">if</span> ((A->getOption().matches(options::OPT_Wl_COMMA) ||</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>          A->getOption().matches(options::OPT_Xlinker)) &&</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>         A->containsValue(<span class="stringliteral">"--no-demangle"</span>)) {</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>       <span class="comment">// Add the rewritten no-demangle argument.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>       DAL->AddFlagArg(A, Opts->getOption(options::OPT_Z_Xlinker__no_demangle));</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>       <span class="comment">// Add the remaining values as Xlinker arguments.</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = A->getNumValues(); i != e; ++i)</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>         <span class="keywordflow">if</span> (StringRef(A->getValue(i)) != <span class="stringliteral">"--no-demangle"</span>)</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>           DAL->AddSeparateArg(A, Opts->getOption(options::OPT_Xlinker),</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>                               A->getValue(i));</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>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     }</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>     <span class="comment">// Rewrite preprocessor options, to replace -Wp,-MD,FOO which is used by</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>     <span class="comment">// some build systems. We don't try to be complete here because we don't</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     <span class="comment">// care to encourage this usage model.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_Wp_COMMA) &&</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>         (A->getValue(0) == StringRef(<span class="stringliteral">"-MD"</span>) ||</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>          A->getValue(0) == StringRef(<span class="stringliteral">"-MMD"</span>))) {</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>       <span class="comment">// Rewrite to -MD/-MMD along with -MF.</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>       <span class="keywordflow">if</span> (A->getValue(0) == StringRef(<span class="stringliteral">"-MD"</span>))</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>         DAL->AddFlagArg(A, Opts->getOption(options::OPT_MD));</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>         DAL->AddFlagArg(A, Opts->getOption(options::OPT_MMD));</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>       <span class="keywordflow">if</span> (A->getNumValues() == 2)</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>         DAL->AddSeparateArg(A, Opts->getOption(options::OPT_MF),</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>                             A->getValue(1));</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>     }</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>     <span class="comment">// Rewrite reserved library names.</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_l)) {</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>       StringRef <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = A->getValue();</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>       <span class="comment">// Rewrite unless -nostdlib is present.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>       <span class="keywordflow">if</span> (!HasNostdlib && Value == <span class="stringliteral">"stdc++"</span>) {</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>         DAL->AddFlagArg(A, Opts->getOption(</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>                               options::OPT_Z_reserved_lib_stdcxx));</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>       }</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>       <span class="comment">// Rewrite unconditionally.</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>       <span class="keywordflow">if</span> (Value == <span class="stringliteral">"cc_kext"</span>) {</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>         DAL->AddFlagArg(A, Opts->getOption(</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>                               options::OPT_Z_reserved_lib_cckext));</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>         <span class="keywordflow">continue</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> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>     <span class="comment">// Pick up inputs via the -- option.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT__DASH_DASH)) {</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>       A->claim();</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = A->getNumValues(); i != e; ++i)</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>         DAL->append(<a class="code" href="Driver_8cpp.html#acbc177d02635f7ec3a9d5d005669b638">MakeInputArg</a>(*DAL, Opts, A->getValue(i)));</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>     }</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>     DAL->append(*it);</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>   }</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>   <span class="comment">// Add a default value of -mlinker-version=, if one was given and the user</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>   <span class="comment">// didn't specify one.</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="preprocessor">#if defined(HOST_LINK_VERSION)</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="preprocessor"></span>  <span class="keywordflow">if</span> (!Args.hasArg(options::OPT_mlinker_version_EQ)) {</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>     DAL->AddJoinedArg(0, Opts->getOption(options::OPT_mlinker_version_EQ),</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>                       <a class="code" href="config_8h.html#a6521acdd36a52edca467b321bbb367c0">HOST_LINK_VERSION</a>);</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     DAL->getLastArg(options::OPT_mlinker_version_EQ)->claim();</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> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>   <span class="keywordflow">return</span> DAL;</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> }</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#ae0652bc49299a5f4cfec664351a5c76b">  291</a></span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> *<a class="code" href="classclang_1_1driver_1_1Driver.html#ae0652bc49299a5f4cfec664351a5c76b">Driver::BuildCompilation</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const char *></a> ArgList) {</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>   llvm::PrettyStackTraceString CrashInfo(<span class="stringliteral">"Compilation construction"</span>);</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>   <span class="comment">// FIXME: Handle environment options which affect driver behavior, somewhere</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>   <span class="comment">// (client?). GCC_EXEC_PREFIX, LPATH, CC_PRINT_OPTIONS.</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">  297</span>   <span class="keywordflow">if</span> (<span class="keywordtype">char</span> *env = ::getenv(<span class="stringliteral">"COMPILER_PATH"</span>)) {</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>     StringRef CompilerPath = env;</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>     <span class="keywordflow">while</span> (!CompilerPath.empty()) {</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>       std::pair<StringRef, StringRef> Split</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>         = CompilerPath.split(llvm::sys::EnvPathSeparator);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#ade69d44e010fa1943fab5f2a16c815a1">PrefixDirs</a>.push_back(Split.first);</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>       CompilerPath = Split.second;</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> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>   <span class="comment">// We look for the driver mode option early, because the mode can affect</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>   <span class="comment">// how other options are parsed.</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#aae406dd01e7c7985fe55fed70155ab7d" title="ParseDriverMode - Look for and handle the driver mode option in Args.">ParseDriverMode</a>(ArgList.slice(1));</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>   <span class="comment">// FIXME: What are we going to do with -V and -b?</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>   <span class="comment">// FIXME: This stuff needs to go into the Compilation, not the driver.</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>   <span class="keywordtype">bool</span> CCCPrintActions;</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>   InputArgList *Args = <a class="code" href="classclang_1_1driver_1_1Driver.html#a32cdbd9e9abbcd0ad6b651f5cecb8a5b">ParseArgStrings</a>(ArgList.slice(1));</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>   <span class="comment">// -no-canonical-prefixes is used very early in main.</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   Args->ClaimAllArgs(options::OPT_no_canonical_prefixes);</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="comment">// Ignore -pipe.</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>   Args->ClaimAllArgs(options::OPT_pipe);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>   <span class="comment">// Extract -ccc args.</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>   <span class="comment">// FIXME: We need to figure out where this behavior should live. Most of it</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>   <span class="comment">// should be outside in the client; the parts that aren't should have proper</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>   <span class="comment">// options, either by introducing new ones or by overloading gcc ones like -V</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>   <span class="comment">// or -b.</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>   CCCPrintActions = Args->hasArg(options::OPT_ccc_print_phases);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a5040400b3d6bec2e8d1942bca7a9c5ca" title="Only print tool bindings, don't build any jobs.">CCCPrintBindings</a> = Args->hasArg(options::OPT_ccc_print_bindings);</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args->getLastArg(options::OPT_ccc_gcc_name))</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>     CCCGenericGCCName = A->getValue();</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a1fff038c7aef9dded7189b13122f8ad2" title="Use lazy precompiled headers for PCH support.">CCCUsePCH</a> = Args->hasFlag(options::OPT_ccc_pch_is_pch,</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>                             options::OPT_ccc_pch_is_pth);</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>   <span class="comment">// FIXME: DefaultTargetTriple is used by the target-prefixed calls to as/ld</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>   <span class="comment">// and getToolChain is const.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a8bf0fba5eeeecd369faa9fe70af373f8" title="Whether the driver should follow cl.exe like behavior.">IsCLMode</a>()) {</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>     <span class="comment">// clang-cl targets Win32.</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     llvm::Triple T(<a class="code" href="classclang_1_1driver_1_1Driver.html#afc30d904f7d861095e669518ae56ebca" title="Default target triple.">DefaultTargetTriple</a>);</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     T.setOSName(llvm::Triple::getOSTypeName(llvm::Triple::Win32));</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#afc30d904f7d861095e669518ae56ebca" title="Default target triple.">DefaultTargetTriple</a> = T.str();</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>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args->getLastArg(options::OPT_target))</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#afc30d904f7d861095e669518ae56ebca" title="Default target triple.">DefaultTargetTriple</a> = A->getValue();</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args->getLastArg(options::OPT_ccc_install_dir))</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#ac2e921652102bc5ebed73ac600f1e63c">Dir</a> = <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e66cf1b3649ed55d9dcf1663b351c0f" title="The path to the installed clang directory, if any.">InstalledDir</a> = A->getValue();</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>   <span class="keywordflow">for</span> (arg_iterator it = Args->filtered_begin(options::OPT_B),</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>          ie = Args->filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>     <span class="keyword">const</span> Arg *A = *it;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>     A->claim();</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#ade69d44e010fa1943fab5f2a16c815a1">PrefixDirs</a>.push_back(A->getValue(0));</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>   }</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args->getLastArg(options::OPT__sysroot_EQ))</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a0339340ab6987b95840159f00852e733" title="sysroot, if present">SysRoot</a> = A->getValue();</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args->getLastArg(options::OPT__dyld_prefix_EQ))</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a4a13aa0c79b4a288810f86b296f9f12b" title="Dynamic loader prefix, if present.">DyldPrefix</a> = A->getValue();</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>   <span class="keywordflow">if</span> (Args->hasArg(options::OPT_nostdlib))</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#acdff41a97d252bd454794f64ad26c4aa" title="If the standard library is used.">UseStdLib</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args->getLastArg(options::OPT_resource_dir))</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#ab6e86cc00f556e22bb9f89d07bfcc065" title="The path to the compiler resource directory.">ResourceDir</a> = A->getValue();</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>   <span class="comment">// Perform the default argument translations.</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>   DerivedArgList *TranslatedArgs = TranslateInputArgs(*Args);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>   <span class="comment">// Owned by the host.</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC = getToolChain(*Args);</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>   <span class="comment">// The compilation takes ownership of Args.</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>   <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> *C = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a>(*<span class="keyword">this</span>, TC, Args, TranslatedArgs);</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1driver_1_1Driver.html#a95e49e33e310f306e86fee24da3b2a9f">HandleImmediateArgs</a>(*C))</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>     <span class="keywordflow">return</span> C;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>   <span class="comment">// Construct the list of inputs.</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>   <a class="code" href="classllvm_1_1SmallVector.html">InputList</a> Inputs;</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a22d38907b7c116194395a3079bad83c5">BuildInputs</a>(C-><a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>(), *TranslatedArgs, Inputs);</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   <span class="comment">// Construct the list of abstract actions to perform for this compilation. On</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>   <span class="comment">// Darwin target OSes this uses the driver-driver and universal actions.</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>   <span class="keywordflow">if</span> (TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a284d9d6f7ac8fc54c91694619d5967d9">getTriple</a>().isOSDarwin())</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a5b9fda47c5f38f90da0c85651a4c5056">BuildUniversalActions</a>(C-><a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>(), C-><a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(),</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>                           Inputs, C-><a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>());</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e7d80a95d9d355d911720b9fbd36de8">BuildActions</a>(C-><a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>(), C-><a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), Inputs,</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>                  C-><a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>());</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>   <span class="keywordflow">if</span> (CCCPrintActions) {</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a27477093014fcbbc5fca00e5478263d7" title="PrintActions - Print the list of actions.">PrintActions</a>(*C);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>     <span class="keywordflow">return</span> C;</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>   }</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a6832f75eb8b22ccac04e7fda869daf9c">BuildJobs</a>(*C);</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>   <span class="keywordflow">return</span> C;</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> }</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">// When clang crashes, produce diagnostic information including the fully</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">// preprocessed source file(s).  Request that the developer attach the</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">// diagnostic information to a bug report.</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#ab0282b32f9178544df50c3c26a109c8d">  402</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#ab0282b32f9178544df50c3c26a109c8d">Driver::generateCompilationDiagnostics</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C,</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>                                             <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *FailingCommand) {</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_fno_crash_diagnostics))</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>   <span class="comment">// Don't try to generate diagnostics for link or dsymutil jobs.</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>   <span class="keywordflow">if</span> (FailingCommand && (FailingCommand-><a class="code" href="classclang_1_1driver_1_1Command.html#a170fb38a9b2009c1c212020f1393b4e6" title="getCreator - Return the Tool which caused the creation of this job.">getCreator</a>().<a class="code" href="classclang_1_1driver_1_1Tool.html#a02a7a47387b5550204a13a25aebbcb32">isLinkJob</a>() ||</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>                          FailingCommand-><a class="code" href="classclang_1_1driver_1_1Command.html#a170fb38a9b2009c1c212020f1393b4e6" title="getCreator - Return the Tool which caused the creation of this job.">getCreator</a>().<a class="code" href="classclang_1_1driver_1_1Tool.html#a3c51eaa989f6fb0ebe90519c0b968290">isDsymutilJob</a>()))</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> </div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>   <span class="comment">// Print the version of the compiler.</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a902e9ba4ff93f701ab241baa3bf9f213" title="PrintVersion - Print the driver version.">PrintVersion</a>(C, llvm::errs());</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>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>     << <span class="stringliteral">"PLEASE submit a bug report to "</span> <a class="code" href="config_8h.html#adf7c7c6700e3090f8c0024c209c3c519">BUG_REPORT_URL</a> <span class="stringliteral">" and include the "</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>     <span class="stringliteral">"crash backtrace, preprocessed source, and associated run script."</span>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>   <span class="comment">// Suppress driver output and emit preprocessor output to temp file.</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   Mode = CPPMode;</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a58be750f07387f656ee77c8122697c06" title="Whether the driver is generating diagnostics for debugging purposes.">CCGenDiagnostics</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>   C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().AddFlagArg(0, Opts->getOption(options::OPT_frewrite_includes));</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="comment">// Save the original job command(s).</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>   std::string Cmd;</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>   llvm::raw_string_ostream OS(Cmd);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>   <span class="keywordflow">if</span> (FailingCommand)</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>     FailingCommand-><a class="code" href="classclang_1_1driver_1_1Command.html#a756e3765edc05da289e6e28e3de6cc76">Print</a>(OS, <span class="stringliteral">"\n"</span>, <span class="comment">/*Quote*/</span> <span class="keyword">false</span>, <span class="comment">/*CrashReport*/</span> <span class="keyword">true</span>);</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="comment">// Crash triggered by FORCE_CLANG_DIAGNOSTICS_CRASH, which doesn't have an</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>     <span class="comment">// associated FailingCommand, so just pass all jobs.</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>     C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#aab33a3c539568797b39f9ee103d7f467">getJobs</a>().<a class="code" href="classclang_1_1driver_1_1JobList.html#a984eb6e2c0fe1bf26ab1044df15e54e6">Print</a>(OS, <span class="stringliteral">"\n"</span>, <span class="comment">/*Quote*/</span> <span class="keyword">false</span>, <span class="comment">/*CrashReport*/</span> <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>   OS.flush();</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="comment">// Keep track of whether we produce any errors while trying to produce</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   <span class="comment">// preprocessed sources.</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>   <a class="code" href="classclang_1_1DiagnosticErrorTrap.html" title="RAII class that determines when any errors have occurred between the time the instance was created an...">DiagnosticErrorTrap</a> Trap(Diags);</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>   <span class="comment">// Suppress tool output.</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#ac03d926e31599bb9624271fab6966a3c">initCompilationForDiagnostics</a>();</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>   <span class="comment">// Construct the list of inputs.</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   <a class="code" href="classllvm_1_1SmallVector.html">InputList</a> Inputs;</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a22d38907b7c116194395a3079bad83c5">BuildInputs</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>(), C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), Inputs);</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>   <span class="keywordflow">for</span> (InputList::iterator it = Inputs.begin(), ie = Inputs.end(); it != ie;) {</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>     <span class="keywordtype">bool</span> IgnoreInput = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>     <span class="comment">// Ignore input from stdin or any inputs that cannot be preprocessed.</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>     <span class="keywordflow">if</span> (!strcmp(it->second->getValue(), <span class="stringliteral">"-"</span>)) {</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>         << <span class="stringliteral">"Error generating preprocessed source(s) - ignoring input from stdin"</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>         <span class="stringliteral">"."</span>;</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>       IgnoreInput = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceclang_1_1driver_1_1types.html#a390d7eeb3c9c81ee9e2d1a07b01f3fed">types::getPreprocessedType</a>(it->first) == <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718a2487e04cb21dc54505b23b7946866721">types::TY_INVALID</a>) {</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>       IgnoreInput = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>     }</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>     <span class="keywordflow">if</span> (IgnoreInput) {</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>       it = Inputs.erase(it);</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>       ie = Inputs.end();</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>       ++it;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>     }</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>   }</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>   <span class="keywordflow">if</span> (Inputs.empty()) {</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>       << <span class="stringliteral">"Error generating preprocessed source(s) - no preprocessable inputs."</span>;</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   }</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>   <span class="comment">// Don't attempt to generate preprocessed files if multiple -arch options are</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>   <span class="comment">// used, unless they're all duplicates.</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>   llvm::StringSet<> ArchNames;</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>   <span class="keywordflow">for</span> (ArgList::const_iterator it = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().begin(), ie = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().end();</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>        it != ie; ++it) {</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>     Arg *A = *it;</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_arch)) {</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>       StringRef ArchName = A->getValue();</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>       ArchNames.insert(ArchName);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>     }</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>   }</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>   <span class="keywordflow">if</span> (ArchNames.size() > 1) {</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>       << <span class="stringliteral">"Error generating preprocessed source(s) - cannot generate "</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>       <span class="stringliteral">"preprocessed source with multiple -arch options."</span>;</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>   }</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>   <span class="comment">// Construct the list of abstract actions to perform for this compilation. On</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>   <span class="comment">// Darwin OSes this uses the driver-driver and builds universal actions.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>();</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>   <span class="keywordflow">if</span> (TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a284d9d6f7ac8fc54c91694619d5967d9">getTriple</a>().isOSDarwin())</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a5b9fda47c5f38f90da0c85651a4c5056">BuildUniversalActions</a>(TC, C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), Inputs, C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>());</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e7d80a95d9d355d911720b9fbd36de8">BuildActions</a>(TC, C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), Inputs, C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>());</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>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a6832f75eb8b22ccac04e7fda869daf9c">BuildJobs</a>(C);</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>   <span class="comment">// If there were errors building the compilation, quit now.</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>   <span class="keywordflow">if</span> (Trap.<a class="code" href="classclang_1_1DiagnosticErrorTrap.html#ad257dd828423add7eb6a076ed66acc74" title="Determine whether any errors have occurred since this object instance was created.">hasErrorOccurred</a>()) {</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>       << <span class="stringliteral">"Error generating preprocessed source(s)."</span>;</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>     <span class="keywordflow">return</span>;</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> </div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>   <span class="comment">// Generate preprocessed output.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::pair<int, const Command *></a>, 4> FailingCommands;</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#ab34f2f199fa2e17d303d239b7df15f41">ExecuteJob</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#aab33a3c539568797b39f9ee103d7f467">getJobs</a>(), FailingCommands);</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="comment">// If the command succeeded, we are done.</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>   <span class="keywordflow">if</span> (FailingCommands.empty()) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>       << <span class="stringliteral">"\n********************\n\n"</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>       <span class="stringliteral">"PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:\n"</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>       <span class="stringliteral">"Preprocessed source(s) and associated run script(s) are located at:"</span>;</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>     ArgStringList Files = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a0bc287bfdeef1813d74cfce1ca5b76be">getTempFiles</a>();</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>     <span class="keywordflow">for</span> (ArgStringList::const_iterator it = Files.begin(), ie = Files.end();</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>          it != ie; ++it) {</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg) << *it;</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>       std::string Err;</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>       std::string Script = StringRef(*it).rsplit(<span class="charliteral">'.'</span>).first;</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>       Script += <span class="stringliteral">".sh"</span>;</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>       llvm::raw_fd_ostream ScriptOS(</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>           Script.c_str(), Err, llvm::sys::fs::F_Excl | llvm::sys::fs::F_Binary);</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>       <span class="keywordflow">if</span> (!Err.empty()) {</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>           << <span class="stringliteral">"Error generating run script: "</span> + Script + <span class="stringliteral">" "</span> + Err;</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>         <span class="comment">// Append the new filename with correct preprocessed suffix.</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>         <span class="keywordtype">size_t</span> I, E;</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>         I = Cmd.find(<span class="stringliteral">"-main-file-name "</span>);</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>         assert (I != std::string::npos && <span class="stringliteral">"Expected to find -main-file-name"</span>);</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>         I += 16;</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>         E = Cmd.find(<span class="stringliteral">" "</span>, I);</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>         assert (E != std::string::npos && <span class="stringliteral">"-main-file-name missing argument?"</span>);</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>         StringRef OldFilename = StringRef(Cmd).slice(I, E);</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>         StringRef NewFilename = llvm::sys::path::filename(*it);</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>         I = StringRef(Cmd).rfind(OldFilename);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>         E = I + OldFilename.size();</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>         I = Cmd.rfind(<span class="stringliteral">" "</span>, I) + 1;</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>         Cmd.replace(I, E - I, NewFilename.data(), NewFilename.size());</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>         ScriptOS << Cmd;</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg) << Script;</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>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>       << <span class="stringliteral">"\n\n********************"</span>;</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>     <span class="comment">// Failure, remove preprocessed files.</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>     <span class="keywordflow">if</span> (!C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_save_temps))</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>       C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a62e4310546e96bfd1d22c0b4c5fd549e">CleanupFileList</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a0bc287bfdeef1813d74cfce1ca5b76be">getTempFiles</a>(), <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> </div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_command_failed_diag_msg)</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>       << <span class="stringliteral">"Error generating preprocessed source(s)."</span>;</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>   }</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> }</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> </div>
+<div class="line"><a name="l00561"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a68a340c41cdf7bce18838694e86f51e5">  561</a></span> <span class="keywordtype">int</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a68a340c41cdf7bce18838694e86f51e5">Driver::ExecuteCompilation</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C,</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>     <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a>< std::pair<int, const Command *> > &FailingCommands)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   <span class="comment">// Just print if -### was present.</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__HASH_HASH_HASH)) {</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>     C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#aab33a3c539568797b39f9ee103d7f467">getJobs</a>().<a class="code" href="classclang_1_1driver_1_1JobList.html#a984eb6e2c0fe1bf26ab1044df15e54e6">Print</a>(llvm::errs(), <span class="stringliteral">"\n"</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>   }</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> </div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>   <span class="comment">// If there were errors building the compilation, quit now.</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>   <span class="keywordflow">if</span> (Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a21110920a247c38d762a8de1b7e8e767">hasErrorOccurred</a>())</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>     <span class="keywordflow">return</span> 1;</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>   C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#ab34f2f199fa2e17d303d239b7df15f41">ExecuteJob</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#aab33a3c539568797b39f9ee103d7f467">getJobs</a>(), FailingCommands);</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> </div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>   <span class="comment">// Remove temp files.</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>   C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a62e4310546e96bfd1d22c0b4c5fd549e">CleanupFileList</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a0bc287bfdeef1813d74cfce1ca5b76be">getTempFiles</a>());</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="comment">// If the command succeeded, we are done.</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>   <span class="keywordflow">if</span> (FailingCommands.empty())</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>     <span class="keywordflow">return</span> 0;</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>   <span class="comment">// Otherwise, remove result files and print extra information about abnormal</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>   <span class="comment">// failures.</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a>< std::pair<int, const Command *> >::iterator it =</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>          FailingCommands.begin(), ie = FailingCommands.end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>     <span class="keywordtype">int</span> Res = it->first;</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *FailingCommand = it->second;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> </div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>     <span class="comment">// Remove result files if we're not saving temps.</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>     <span class="keywordflow">if</span> (!C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_save_temps)) {</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> *JA = cast<JobAction>(&FailingCommand-><a class="code" href="classclang_1_1driver_1_1Command.html#a7a55e2e356c871b97582852d93e1bfb1" title="getSource - Return the Action which caused the creation of this job.">getSource</a>());</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>       C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#ab1d4bfaa90951246840c67ea683ae511">CleanupFileMap</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a3a64865aa2c292b5bd4274e02b8862f6">getResultFiles</a>(), JA, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>       <span class="comment">// Failure result files are valid unless we crashed.</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>       <span class="keywordflow">if</span> (Res < 0)</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>         C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#ab1d4bfaa90951246840c67ea683ae511">CleanupFileMap</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a9caeddf62c05104e95ee0bdf9c93cfa8">getFailureResultFiles</a>(), JA, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>     }</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span> </div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>     <span class="comment">// Print extra information about abnormal failures, if possible.</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>     <span class="comment">// This is ad-hoc, but we don't want to be excessively noisy. If the result</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>     <span class="comment">// status was 1, assume the command failed normally. In particular, if it </span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>     <span class="comment">// was the compiler then assume it gave a reasonable error code. Failures</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>     <span class="comment">// in other tools are less common, and they generally have worse</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>     <span class="comment">// diagnostics, so always print the diagnostic there.</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> &FailingTool = FailingCommand-><a class="code" href="classclang_1_1driver_1_1Command.html#a170fb38a9b2009c1c212020f1393b4e6" title="getCreator - Return the Tool which caused the creation of this job.">getCreator</a>();</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> </div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>     <span class="keywordflow">if</span> (!FailingCommand-><a class="code" href="classclang_1_1driver_1_1Command.html#a170fb38a9b2009c1c212020f1393b4e6" title="getCreator - Return the Tool which caused the creation of this job.">getCreator</a>().<a class="code" href="classclang_1_1driver_1_1Tool.html#ac7e8d2d4154c718011554342c21e74a0" title="Does this tool have "good" standardized diagnostics, or should the driver add an additional "command ...">hasGoodDiagnostics</a>() || Res != 1) {</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>       <span class="comment">// FIXME: See FIXME above regarding result code interpretation.</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>       <span class="keywordflow">if</span> (Res < 0)</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_command_signalled)</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>           << FailingTool.<a class="code" href="classclang_1_1driver_1_1Tool.html#ac37cd5727fb0ba74b60656e9cee03912">getShortName</a>();</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_command_failed)</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>           << FailingTool.<a class="code" href="classclang_1_1driver_1_1Tool.html#ac37cd5727fb0ba74b60656e9cee03912">getShortName</a>() << Res;</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>     }</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>   }</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>   <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span> }</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span> </div>
+<div class="line"><a name="l00621"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a74a1fb74fb2ded5e6dbd3d18916d89a4">  621</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a74a1fb74fb2ded5e6dbd3d18916d89a4">Driver::PrintHelp</a>(<span class="keywordtype">bool</span> ShowHidden)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>   <span class="keywordtype">unsigned</span> IncludedFlagsBitmask;</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>   <span class="keywordtype">unsigned</span> ExcludedFlagsBitmask;</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>   llvm::tie(IncludedFlagsBitmask, ExcludedFlagsBitmask) =</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>     getIncludeExcludeOptionFlagMasks();</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> </div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>   ExcludedFlagsBitmask |= <a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2a56267cfb98f46f1eea43b97c1a0015f9">options::NoDriverOption</a>;</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>   <span class="keywordflow">if</span> (!ShowHidden)</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     ExcludedFlagsBitmask |= HelpHidden;</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>   <a class="code" href="classclang_1_1driver_1_1Driver.html#adb951221317e3bec4b66897fac2625db">getOpts</a>().PrintHelp(llvm::outs(), <a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a>.c_str(), <a class="code" href="classclang_1_1driver_1_1Driver.html#a4e291543c5ee6c941a07ba10fe2a05fa" title="Driver title to use with help.">DriverTitle</a>.c_str(),</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>                       IncludedFlagsBitmask, ExcludedFlagsBitmask);</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> </div>
+<div class="line"><a name="l00635"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a902e9ba4ff93f701ab241baa3bf9f213">  635</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a902e9ba4ff93f701ab241baa3bf9f213" title="PrintVersion - Print the driver version.">Driver::PrintVersion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C, raw_ostream &OS)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>   <span class="comment">// FIXME: The following handlers should use a callback mechanism, we don't</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>   <span class="comment">// know what the client would like to do.</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>   OS << <a class="code" href="namespaceclang.html#afae55c04eca31832eb078c482fd80978" title="Retrieves a string representing the complete clang version, which includes the clang version number...">getClangFullVersion</a>() << <span class="charliteral">'\n'</span>;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>();</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>   OS << <span class="stringliteral">"Target: "</span> << TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#aee7ff2003587043d7e2e71458ec83a03">getTripleString</a>() << <span class="charliteral">'\n'</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>   <span class="comment">// Print the threading model.</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>   <span class="comment">// FIXME: Implement correctly.</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>   OS << <span class="stringliteral">"Thread model: "</span> << <span class="stringliteral">"posix"</span> << <span class="charliteral">'\n'</span>;</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span> }</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span> <span class="comment"></span></div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span> <span class="comment">/// PrintDiagnosticCategories - Implement the --print-diagnostic-categories</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span> <span class="comment">/// option.</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"><a class="code" href="Driver_8cpp.html#a7195c662d90e028d4eb29fdd7b2c145e">  650</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="Driver_8cpp.html#a7195c662d90e028d4eb29fdd7b2c145e">PrintDiagnosticCategories</a>(raw_ostream &OS) {</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>   <span class="comment">// Skip the empty category.</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 1, max = <a class="code" href="classclang_1_1DiagnosticIDs.html#a2526a7f0f5bc96d72a811a2bd6361f1d" title="Return the number of diagnostic categories.">DiagnosticIDs::getNumberOfCategories</a>();</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>        i != max; ++i)</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     OS << i << <span class="charliteral">','</span> << <a class="code" href="classclang_1_1DiagnosticIDs.html#a0effd747e90dff31a882246f2746c3b2" title="Given a category ID, return the name of the category.">DiagnosticIDs::getCategoryNameFromID</a>(i) << <span class="charliteral">'\n'</span>;</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> }</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> </div>
+<div class="line"><a name="l00657"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a95e49e33e310f306e86fee24da3b2a9f">  657</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a95e49e33e310f306e86fee24da3b2a9f">Driver::HandleImmediateArgs</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C) {</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>   <span class="comment">// The order these options are handled in gcc is all over the place, but we</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>   <span class="comment">// don't expect inconsistencies w.r.t. that to matter in practice.</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="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_dumpmachine)) {</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>     llvm::outs() << C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>().<a class="code" href="classclang_1_1driver_1_1ToolChain.html#aee7ff2003587043d7e2e71458ec83a03">getTripleString</a>() << <span class="charliteral">'\n'</span>;</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>   }</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span> </div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_dumpversion)) {</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>     <span class="comment">// Since -dumpversion is only implemented for pedantic GCC compatibility, we</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>     <span class="comment">// return an answer which matches our definition of __VERSION__.</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>     <span class="comment">// If we want to return a more correct answer some day, then we should</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>     <span class="comment">// introduce a non-pedantically GCC compatible mode to Clang in which we</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>     <span class="comment">// provide sensible definitions for -dumpversion, __VERSION__, etc.</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>     llvm::outs() << <span class="stringliteral">"4.2.1\n"</span>;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>     <span class="keywordflow">return</span> <span class="keyword">false</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>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__print_diagnostic_categories)) {</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>     <a class="code" href="Driver_8cpp.html#a7195c662d90e028d4eb29fdd7b2c145e">PrintDiagnosticCategories</a>(llvm::outs());</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>   }</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span> </div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_help) ||</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>       C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__help_hidden)) {</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a74a1fb74fb2ded5e6dbd3d18916d89a4">PrintHelp</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__help_hidden));</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>   }</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span> </div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__version)) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>     <span class="comment">// Follow gcc behavior and use stdout for --version and stderr for -v.</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a902e9ba4ff93f701ab241baa3bf9f213" title="PrintVersion - Print the driver version.">PrintVersion</a>(C, llvm::outs());</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>   }</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span> </div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_v) ||</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>       C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__HASH_HASH_HASH)) {</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a902e9ba4ff93f701ab241baa3bf9f213" title="PrintVersion - Print the driver version.">PrintVersion</a>(C, llvm::errs());</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>     SuppressMissingInputWarning = <span class="keyword">true</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">  700</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>();</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> </div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_v))</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>     TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a290be63a8e76ed5880ef66c87a87443b" title="Dispatch to the specific toolchain for verbose printing.">printVerboseInfo</a>(llvm::errs());</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span> </div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_print_search_dirs)) {</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>     llvm::outs() << <span class="stringliteral">"programs: ="</span>;</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>     <span class="keywordflow">for</span> (ToolChain::path_list::const_iterator it = TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#acd60ca390f47b6cb2438f31c6ac0efdf">getProgramPaths</a>().begin(),</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>            ie = TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#acd60ca390f47b6cb2438f31c6ac0efdf">getProgramPaths</a>().end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>       <span class="keywordflow">if</span> (it != TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#acd60ca390f47b6cb2438f31c6ac0efdf">getProgramPaths</a>().begin())</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>         llvm::outs() << <span class="charliteral">':'</span>;</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>       llvm::outs() << *it;</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>     llvm::outs() << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>     llvm::outs() << <span class="stringliteral">"libraries: ="</span> << <a class="code" href="classclang_1_1driver_1_1Driver.html#ab6e86cc00f556e22bb9f89d07bfcc065" title="The path to the compiler resource directory.">ResourceDir</a>;</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>     StringRef sysroot = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a94648433f1524b4967a06f1c9cff2fdd" title="Returns the sysroot path.">getSysRoot</a>();</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span> </div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     <span class="keywordflow">for</span> (ToolChain::path_list::const_iterator it = TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a13a68a2e273162f73d44b117e195e1ab">getFilePaths</a>().begin(),</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>            ie = TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a13a68a2e273162f73d44b117e195e1ab">getFilePaths</a>().end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>       llvm::outs() << <span class="charliteral">':'</span>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>       <span class="keyword">const</span> <span class="keywordtype">char</span> *path = it->c_str();</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>       <span class="keywordflow">if</span> (path[0] == <span class="charliteral">'='</span>)</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>         llvm::outs() << sysroot << path + 1;</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>         llvm::outs() << path;</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>     llvm::outs() << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>   }</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span> </div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>   <span class="comment">// FIXME: The following handlers should use a callback mechanism, we don't</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>   <span class="comment">// know what the client would like to do.</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>   <span class="keywordflow">if</span> (Arg *A = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().getLastArg(options::OPT_print_file_name_EQ)) {</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>     llvm::outs() << <a class="code" href="classclang_1_1driver_1_1Driver.html#a0149be428cc7aad47825743369e6d9f9">GetFilePath</a>(A->getValue(), TC) << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>     <span class="keywordflow">return</span> <span class="keyword">false</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> (Arg *A = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().getLastArg(options::OPT_print_prog_name_EQ)) {</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>     llvm::outs() << <a class="code" href="classclang_1_1driver_1_1Driver.html#a906f4866c7d598e6a5a676c9a8ccf942">GetProgramPath</a>(A->getValue(), TC) << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>   }</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> </div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_print_libgcc_file_name)) {</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>     llvm::outs() << <a class="code" href="classclang_1_1driver_1_1Driver.html#a0149be428cc7aad47825743369e6d9f9">GetFilePath</a>(<span class="stringliteral">"libgcc.a"</span>, TC) << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>   }</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span> </div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_print_multi_lib)) {</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>     <span class="comment">// FIXME: We need tool chain support for this.</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>     llvm::outs() << <span class="stringliteral">".;\n"</span>;</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>     <span class="keywordflow">switch</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>().<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a284d9d6f7ac8fc54c91694619d5967d9">getTriple</a>().getArch()) {</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> </div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>     <span class="keywordflow">case</span> llvm::Triple::x86_64:</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>       llvm::outs() << <span class="stringliteral">"x86_64;@m64"</span> << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> </div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>     <span class="keywordflow">case</span> llvm::Triple::ppc64:</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>       llvm::outs() << <span class="stringliteral">"ppc64;@m64"</span> << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> </div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>     <span class="keywordflow">case</span> llvm::Triple::ppc64le:</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>       llvm::outs() << <span class="stringliteral">"ppc64le;@m64"</span> << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>     }</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>   }</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>   <span class="comment">// FIXME: What is the difference between print-multi-directory and</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>   <span class="comment">// print-multi-os-directory?</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_print_multi_directory) ||</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>       C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_print_multi_os_directory)) {</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>     <span class="keywordflow">switch</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>().<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a284d9d6f7ac8fc54c91694619d5967d9">getTriple</a>().getArch()) {</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>     <span class="keywordflow">case</span> llvm::Triple::x86:</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>     <span class="keywordflow">case</span> llvm::Triple::ppc:</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>       llvm::outs() << <span class="stringliteral">"."</span> << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> </div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>     <span class="keywordflow">case</span> llvm::Triple::x86_64:</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>       llvm::outs() << <span class="stringliteral">"x86_64"</span> << <span class="stringliteral">"\n"</span>;</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> </div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>     <span class="keywordflow">case</span> llvm::Triple::ppc64:</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>       llvm::outs() << <span class="stringliteral">"ppc64"</span> << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span> </div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>     <span class="keywordflow">case</span> llvm::Triple::ppc64le:</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>       llvm::outs() << <span class="stringliteral">"ppc64le"</span> << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>     }</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>   }</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span> </div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span> }</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span> </div>
+<div class="line"><a name="l00800"></a><span class="lineno"><a class="code" href="Driver_8cpp.html#afc2b0a261df29540ee9ded743a3755a5">  800</a></span> <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="Driver_8cpp.html#afc2b0a261df29540ee9ded743a3755a5">PrintActions1</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C, <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A,</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>                               std::map<Action*, unsigned> &Ids) {</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>   <span class="keywordflow">if</span> (Ids.count(A))</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>     <span class="keywordflow">return</span> Ids[A];</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span> </div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>   std::string str;</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>   llvm::raw_string_ostream os(str);</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span> </div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   os << <a class="code" href="classclang_1_1driver_1_1Action.html#ad84c6b2d5920b0fb3ccb6aa4feb938ee">Action::getClassName</a>(A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>()) << <span class="stringliteral">", "</span>;</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1InputAction.html">InputAction</a> *IA = dyn_cast<InputAction>(A)) {</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>     os << <span class="stringliteral">"\""</span> << IA->getInputArg().getValue() << <span class="stringliteral">"\""</span>;</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1BindArchAction.html">BindArchAction</a> *BIA = dyn_cast<BindArchAction>(A)) {</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>     os << <span class="charliteral">'"'</span> << BIA->getArchName() << <span class="charliteral">'"'</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>        << <span class="stringliteral">", {"</span> << <a class="code" href="Driver_8cpp.html#afc2b0a261df29540ee9ded743a3755a5">PrintActions1</a>(C, *BIA->begin(), Ids) << <span class="stringliteral">"}"</span>;</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>     os << <span class="stringliteral">"{"</span>;</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1driver_1_1Action.html#a81602593587203a1131234dd0b3df256">Action::iterator</a> it = A-><a class="code" href="classclang_1_1driver_1_1Action.html#a5f5f713cfeadf8708788ccfb88dd001e">begin</a>(), ie = A-><a class="code" href="classclang_1_1driver_1_1Action.html#abef57633338ff7105f7d8ce4a954a2a8">end</a>(); it != ie;) {</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>       os << <a class="code" href="Driver_8cpp.html#afc2b0a261df29540ee9ded743a3755a5">PrintActions1</a>(C, *it, Ids);</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>       ++it;</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>       <span class="keywordflow">if</span> (it != ie)</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>         os << <span class="stringliteral">", "</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>     os << <span class="stringliteral">"}"</span>;</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>   }</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span> </div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>   <span class="keywordtype">unsigned</span> Id = Ids.size();</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>   Ids[A] = Id;</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>   llvm::errs() << Id << <span class="stringliteral">": "</span> << os.str() << <span class="stringliteral">", "</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>                << <a class="code" href="namespaceclang_1_1driver_1_1types.html#a69ab4e75b53e9ab8e3b285f845b9062c" title="getTypeName - Return the name of the type for Id.">types::getTypeName</a>(A-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>()) << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span> </div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>   <span class="keywordflow">return</span> Id;</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</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"><a class="code" href="classclang_1_1driver_1_1Driver.html#a27477093014fcbbc5fca00e5478263d7">  833</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a27477093014fcbbc5fca00e5478263d7" title="PrintActions - Print the list of actions.">Driver::PrintActions</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>   std::map<Action*, unsigned> Ids;</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>   <span class="keywordflow">for</span> (ActionList::const_iterator it = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>().begin(),</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>          ie = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>().end(); it != ie; ++it)</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>     <a class="code" href="Driver_8cpp.html#afc2b0a261df29540ee9ded743a3755a5">PrintActions1</a>(C, *it, Ids);</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span> }</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="comment"></span></div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span> <span class="comment">/// \brief Check whether the given input tree contains any compilation or</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span> <span class="comment">/// assembly actions.</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno"><a class="code" href="Driver_8cpp.html#a77f5e300afb82645a65cdc8a1b8d56d5">  842</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Driver_8cpp.html#a77f5e300afb82645a65cdc8a1b8d56d5" title="Check whether the given input tree contains any compilation or assembly actions.">ContainsCompileOrAssembleAction</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>   <span class="keywordflow">if</span> (isa<CompileJobAction>(A) || isa<AssembleJobAction>(A))</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1driver_1_1Action.html#a4600bdd405403a37fb4baddec485f625">Action::const_iterator</a> it = A-><a class="code" href="classclang_1_1driver_1_1Action.html#a5f5f713cfeadf8708788ccfb88dd001e">begin</a>(), ie = A-><a class="code" href="classclang_1_1driver_1_1Action.html#abef57633338ff7105f7d8ce4a954a2a8">end</a>(); it != ie; ++it)</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>     <span class="keywordflow">if</span> (<a class="code" href="Driver_8cpp.html#a77f5e300afb82645a65cdc8a1b8d56d5" title="Check whether the given input tree contains any compilation or assembly actions.">ContainsCompileOrAssembleAction</a>(*it))</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span> </div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span> }</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span> </div>
+<div class="line"><a name="l00853"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a5b9fda47c5f38f90da0c85651a4c5056">  853</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a5b9fda47c5f38f90da0c85651a4c5056">Driver::BuildUniversalActions</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC,</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>                                    DerivedArgList &Args,</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>                                    <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">InputList</a> &BAInputs,</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>                                    <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Actions)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>   llvm::PrettyStackTraceString CrashInfo(<span class="stringliteral">"Building universal build actions"</span>);</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>   <span class="comment">// Collect the list of architectures. Duplicates are allowed, but should only</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>   <span class="comment">// be handled once (in the order seen).</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>   llvm::StringSet<> ArchNames;</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const char *, 4></a> Archs;</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>   <span class="keywordflow">for</span> (ArgList::const_iterator it = Args.begin(), ie = Args.end();</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>        it != ie; ++it) {</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>     Arg *A = *it;</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">if</span> (A->getOption().matches(options::OPT_arch)) {</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>       <span class="comment">// Validate the option here; we don't save the type here because its</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>       <span class="comment">// particular spelling may participate in other driver choices.</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>       llvm::Triple::ArchType Arch =</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>         <a class="code" href="namespaceclang_1_1driver_1_1tools_1_1darwin.html#a8d01ae2580551031c1f49d867f3d76af">tools::darwin::getArchTypeForDarwinArchName</a>(A->getValue());</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>       <span class="keywordflow">if</span> (Arch == llvm::Triple::UnknownArch) {</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_invalid_arch_name)</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>           << A->getAsString(Args);</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>       }</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span> </div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>       A->claim();</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>       <span class="keywordflow">if</span> (ArchNames.insert(A->getValue()))</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>         Archs.push_back(A->getValue());</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>     }</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>   }</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span> </div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>   <span class="comment">// When there is no explicit arch for this platform, make sure we still bind</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>   <span class="comment">// the architecture (to the default) so that -Xarch_ is handled correctly.</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>   <span class="keywordflow">if</span> (!Archs.size())</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>     Archs.push_back(Args.MakeArgString(TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#ac46e5dd23f5b4eaee31cc95375c35fe3" title="Provide the default architecture name (as expected by -arch) for this toolchain. Note t...">getDefaultUniversalArchName</a>()));</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span> </div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>   <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> SingleActions;</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e7d80a95d9d355d911720b9fbd36de8">BuildActions</a>(TC, Args, BAInputs, SingleActions);</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">// Add in arch bindings for every top level action, as well as lipo and</span></div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>   <span class="comment">// dsymutil steps if needed.</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = SingleActions.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>     <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *Act = SingleActions[i];</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span> </div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>     <span class="comment">// Make sure we can lipo this kind of output. If not (and it is an actual</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>     <span class="comment">// output) then we disallow, since we can't create an output file with the</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>     <span class="comment">// right name without overwriting it. We could remove this oddity by just</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>     <span class="comment">// changing the output names to include the arch, which would also fix</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>     <span class="comment">// -save-temps. Compatibility wins for now.</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>     <span class="keywordflow">if</span> (Archs.size() > 1 && !<a class="code" href="namespaceclang_1_1driver_1_1types.html#acadc8a82419b3c0a5bfd63c29e5b569d">types::canLipoType</a>(Act-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>()))</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_invalid_output_with_multiple_archs)</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>         << <a class="code" href="namespaceclang_1_1driver_1_1types.html#a69ab4e75b53e9ab8e3b285f845b9062c" title="getTypeName - Return the name of the type for Id.">types::getTypeName</a>(Act-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>());</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span> </div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>     <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> Inputs;</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Archs.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>       Inputs.push_back(<span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1BindArchAction.html">BindArchAction</a>(Act, Archs[i]));</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>       <span class="keywordflow">if</span> (i != 0)</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>         Inputs.back()->setOwnsInputs(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>     }</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span> </div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>     <span class="comment">// Lipo if necessary, we do it this way because we need to set the arch flag</span></div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>     <span class="comment">// so that -Xarch_ gets overwritten.</span></div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>     <span class="keywordflow">if</span> (Inputs.size() == 1 || Act-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_Nothing)</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>       Actions.append(Inputs.begin(), Inputs.end());</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>       Actions.push_back(<span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1LipoJobAction.html">LipoJobAction</a>(Inputs, Act-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>()));</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span> </div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>     <span class="comment">// Handle debug info queries.</span></div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>     Arg *A = Args.getLastArg(options::OPT_g_Group);</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>     <span class="keywordflow">if</span> (A && !A->getOption().matches(options::OPT_g0) &&</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>         !A->getOption().matches(options::OPT_gstabs) &&</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>         <a class="code" href="Driver_8cpp.html#a77f5e300afb82645a65cdc8a1b8d56d5" title="Check whether the given input tree contains any compilation or assembly actions.">ContainsCompileOrAssembleAction</a>(Actions.back())) {</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 a 'dsymutil' step if necessary, when debug info is enabled and we</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>       <span class="comment">// have a compile input. We need to run 'dsymutil' ourselves in such cases</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>       <span class="comment">// because the debug info will refer to a temporary object file which</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>       <span class="comment">// will be removed at the end of the compilation process.</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>       <span class="keywordflow">if</span> (Act-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_Image) {</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>         <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> Inputs;</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>         Inputs.push_back(Actions.back());</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>         Actions.pop_back();</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>         Actions.push_back(<span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1DsymutilJobAction.html">DsymutilJobAction</a>(Inputs, types::TY_dSYM));</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>       <span class="comment">// Verify the output (debug information only) if we passed '-verify'.</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>       <span class="keywordflow">if</span> (Args.hasArg(options::OPT_verify)) {</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>         <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> VerifyInputs;</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>         VerifyInputs.push_back(Actions.back());</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>         Actions.pop_back();</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>         Actions.push_back(<span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1VerifyJobAction.html">VerifyJobAction</a>(VerifyInputs,</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>                                               types::TY_Nothing));</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>     }</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">  948</span> <span class="comment"></span></div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span> <span class="comment">/// \brief Check that the file referenced by Value exists. If it doesn't,</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span> <span class="comment">/// issue a diagnostic and return false.</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno"><a class="code" href="Driver_8cpp.html#a6ec8072ae46f8ce68086d6d2b871e94f">  951</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Driver_8cpp.html#a6ec8072ae46f8ce68086d6d2b871e94f" title="Check that the file referenced by Value exists. If it doesn't, issue a diagnostic and return false...">DiagnoseInputExistance</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Driver.html">Driver</a> &D, <span class="keyword">const</span> DerivedArgList &Args,</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>                                    StringRef Value) {</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>   <span class="keywordflow">if</span> (!D.<a class="code" href="classclang_1_1driver_1_1Driver.html#a184c5f81a4ee88a72edd47f797b234ab">getCheckInputsExist</a>())</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span> </div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>   <span class="comment">// stdin always exists.</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>   <span class="keywordflow">if</span> (Value == <span class="stringliteral">"-"</span>)</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>     <span class="keywordflow">return</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>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<64></a> Path(Value);</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>   <span class="keywordflow">if</span> (Arg *WorkDir = Args.getLastArg(options::OPT_working_directory)) {</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>     <span class="keywordflow">if</span> (!llvm::sys::path::is_absolute(Path.str())) {</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>       <a class="code" href="classllvm_1_1SmallString.html">SmallString<64></a> Directory(WorkDir->getValue());</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>       llvm::sys::path::append(Directory, Value);</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>       Path.assign(Directory);</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>     }</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>   }</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span> </div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>   <span class="keywordflow">if</span> (llvm::sys::fs::exists(Twine(Path)))</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span> </div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>   D.<a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_no_such_file) << Path.str();</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>   <span class="keywordflow">return</span> <span class="keyword">false</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> </div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span> <span class="comment">// Construct a the list of inputs and their types.</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a22d38907b7c116194395a3079bad83c5">  977</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a22d38907b7c116194395a3079bad83c5">Driver::BuildInputs</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC, <span class="keyword">const</span> DerivedArgList &Args,</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>                          <a class="code" href="classllvm_1_1SmallVector.html">InputList</a> &Inputs)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>   <span class="comment">// Track the current user specified (-x) input. We also explicitly track the</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>   <span class="comment">// argument used to set the type; we only want to claim the type when we</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>   <span class="comment">// actually use it, so we warn about unused -x arguments.</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>   <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> InputType = types::TY_Nothing;</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>   Arg *InputTypeArg = 0;</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span> </div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>   <span class="comment">// The last /TC or /TP option sets the input type to C or C++ globally.</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>   <span class="keywordflow">if</span> (Arg *TCTP = Args.getLastArg(options::OPT__SLASH_TC,</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>                                   options::OPT__SLASH_TP)) {</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>     InputTypeArg = TCTP;</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>     InputType = TCTP->getOption().matches(options::OPT__SLASH_TC)</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>         ? types::TY_C : types::TY_CXX;</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span> </div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>     arg_iterator it = Args.filtered_begin(options::OPT__SLASH_TC,</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>                                           options::OPT__SLASH_TP);</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>     <span class="keyword">const</span> arg_iterator ie = Args.filtered_end();</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>     Arg *<a class="code" href="Format_8cpp.html#a367365df5b490f2ddb411318d9d421a9">Previous</a> = *it++;</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>     <span class="keywordtype">bool</span> ShowNote = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>     <span class="keywordflow">while</span> (it != ie) {</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::warn_drv_overriding_flag_option)</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>           << Previous->getSpelling() << (*it)->getSpelling();</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>       Previous = *it++;</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>       ShowNote = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>     }</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>     <span class="keywordflow">if</span> (ShowNote)</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::note_drv_t_option_is_global);</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>     <span class="comment">// No driver mode exposes -x and /TC or /TP; we don't support mixing them.</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>     assert(!Args.hasArg(options::OPT_x) && <span class="stringliteral">"-x and /TC or /TP is not allowed"</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"> 1010</span>   <span class="keywordflow">for</span> (ArgList::const_iterator it = Args.begin(), ie = Args.end();</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>        it != ie; ++it) {</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>     Arg *A = *it;</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> </div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>     <span class="keywordflow">if</span> (A->getOption().getKind() == Option::InputClass) {</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>       <span class="keyword">const</span> <span class="keywordtype">char</span> *Value = A->getValue();</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>       <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> Ty = <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718a2487e04cb21dc54505b23b7946866721">types::TY_INVALID</a>;</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> </div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>       <span class="comment">// Infer the input type if necessary.</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>       <span class="keywordflow">if</span> (InputType == types::TY_Nothing) {</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>         <span class="comment">// If there was an explicit arg for this, claim it.</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>         <span class="keywordflow">if</span> (InputTypeArg)</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>           InputTypeArg->claim();</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="comment">// stdin must be handled specially.</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>         <span class="keywordflow">if</span> (memcmp(Value, <span class="stringliteral">"-"</span>, 2) == 0) {</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>           <span class="comment">// If running with -E, treat as a C input (this changes the builtin</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>           <span class="comment">// macros, for example). This may be overridden by -ObjC below.</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>           <span class="comment">//</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>           <span class="comment">// Otherwise emit an error but still use a valid type to avoid</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>           <span class="comment">// spurious errors (e.g., no inputs).</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>           <span class="keywordflow">if</span> (!Args.hasArgNoClaim(options::OPT_E) && !<a class="code" href="classclang_1_1driver_1_1Driver.html#a515bd8fef2b4a0e0fb2ad32b990383d8" title="Whether the driver is just the preprocessor.">CCCIsCPP</a>())</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>             <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_unknown_stdin_type);</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>           Ty = types::TY_C;</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="comment">// Otherwise lookup by extension.</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>           <span class="comment">// Fallback is C if invoked as C preprocessor or Object otherwise.</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>           <span class="comment">// We use a host hook here because Darwin at least has its own</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>           <span class="comment">// idea of what .s is.</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>           <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keywordtype">char</span> *Ext = strrchr(Value, <span class="charliteral">'.'</span>))</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>             Ty = TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a0d7200b57825d51dd42b0a88a02645b5">LookupTypeForExtension</a>(Ext + 1);</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">if</span> (Ty == <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718a2487e04cb21dc54505b23b7946866721">types::TY_INVALID</a>) {</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>             <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a515bd8fef2b4a0e0fb2ad32b990383d8" title="Whether the driver is just the preprocessor.">CCCIsCPP</a>())</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>               Ty = types::TY_C;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>             <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>               Ty = types::TY_Object;</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>           }</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>           <span class="comment">// If the driver is invoked as C++ compiler (like clang++ or c++) it</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>           <span class="comment">// should autodetect some input files as C++ for g++ compatibility.</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>           <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a2c8ab069d9dc51d10e23153d36c9495b" title="Whether the driver should follow g++ like behavior.">CCCIsCXX</a>()) {</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>             <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OldTy = Ty;</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>             Ty = <a class="code" href="namespaceclang_1_1driver_1_1types.html#a97a3893a6544c54af1273ee0d4a9e201">types::lookupCXXTypeForCType</a>(Ty);</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>             <span class="keywordflow">if</span> (Ty != OldTy)</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>               <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::warn_drv_treating_input_as_cxx)</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>                 << <a class="code" href="namespaceclang_1_1driver_1_1types.html#a69ab4e75b53e9ab8e3b285f845b9062c" title="getTypeName - Return the name of the type for Id.">getTypeName</a>(OldTy) << <a class="code" href="namespaceclang_1_1driver_1_1types.html#a69ab4e75b53e9ab8e3b285f845b9062c" title="getTypeName - Return the name of the type for Id.">getTypeName</a>(Ty);</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>           }</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> </div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>         <span class="comment">// -ObjC and -ObjC++ override the default language, but only for "source</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>         <span class="comment">// files". We just treat everything that isn't a linker input as a</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>         <span class="comment">// source file.</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>         <span class="comment">//</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>         <span class="comment">// FIXME: Clean this up if we move the phase sequence into the type.</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>         <span class="keywordflow">if</span> (Ty != types::TY_Object) {</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>           <span class="keywordflow">if</span> (Args.hasArg(options::OPT_ObjC))</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>             Ty = types::TY_ObjC;</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>           <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(options::OPT_ObjCXX))</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>             Ty = types::TY_ObjCXX;</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>         }</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>         assert(InputTypeArg && <span class="stringliteral">"InputType set w/o InputTypeArg"</span>);</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>         InputTypeArg->claim();</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>         Ty = InputType;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>       }</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>       <span class="keywordflow">if</span> (<a class="code" href="Driver_8cpp.html#a6ec8072ae46f8ce68086d6d2b871e94f" title="Check that the file referenced by Value exists. If it doesn't, issue a diagnostic and return false...">DiagnoseInputExistance</a>(*<span class="keyword">this</span>, Args, Value))</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>         Inputs.push_back(std::make_pair(Ty, A));</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (A->getOption().matches(options::OPT__SLASH_Tc)) {</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>       StringRef Value = A->getValue();</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>       <span class="keywordflow">if</span> (<a class="code" href="Driver_8cpp.html#a6ec8072ae46f8ce68086d6d2b871e94f" title="Check that the file referenced by Value exists. If it doesn't, issue a diagnostic and return false...">DiagnoseInputExistance</a>(*<span class="keyword">this</span>, Args, Value)) {</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>         Arg *InputArg = <a class="code" href="Driver_8cpp.html#acbc177d02635f7ec3a9d5d005669b638">MakeInputArg</a>(Args, Opts, A->getValue());</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>         Inputs.push_back(std::make_pair(types::TY_C, InputArg));</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>       }</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>       A->claim();</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (A->getOption().matches(options::OPT__SLASH_Tp)) {</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>       StringRef Value = A->getValue();</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>       <span class="keywordflow">if</span> (<a class="code" href="Driver_8cpp.html#a6ec8072ae46f8ce68086d6d2b871e94f" title="Check that the file referenced by Value exists. If it doesn't, issue a diagnostic and return false...">DiagnoseInputExistance</a>(*<span class="keyword">this</span>, Args, Value)) {</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>         Arg *InputArg = <a class="code" href="Driver_8cpp.html#acbc177d02635f7ec3a9d5d005669b638">MakeInputArg</a>(Args, Opts, A->getValue());</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>         Inputs.push_back(std::make_pair(types::TY_CXX, InputArg));</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>       A->claim();</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (A->getOption().hasFlag(<a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2af61e8227255d20ea9c7532096726dc4d">options::LinkerInput</a>)) {</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>       <span class="comment">// Just treat as object type, we could make a special type for this if</span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>       <span class="comment">// necessary.</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>       Inputs.push_back(std::make_pair(types::TY_Object, A));</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="keywordflow">else</span> <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_x)) {</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>       InputTypeArg = A;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>       InputType = <a class="code" href="namespaceclang_1_1driver_1_1types.html#a1379905b7b04e2100621537b657b7d90">types::lookupTypeForTypeSpecifier</a>(A->getValue());</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>       A->claim();</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> </div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>       <span class="comment">// Follow gcc behavior and treat as linker input for invalid -x</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>       <span class="comment">// options. Its not clear why we shouldn't just revert to unknown; but</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>       <span class="comment">// this isn't very important, we might as well be bug compatible.</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>       <span class="keywordflow">if</span> (!InputType) {</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_unknown_language) << A->getValue();</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>         InputType = types::TY_Object;</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>     }</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>   }</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a515bd8fef2b4a0e0fb2ad32b990383d8" title="Whether the driver is just the preprocessor.">CCCIsCPP</a>() && Inputs.empty()) {</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>     <span class="comment">// If called as standalone preprocessor, stdin is processed</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>     <span class="comment">// if no other input is present.</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>     Arg *A = <a class="code" href="Driver_8cpp.html#acbc177d02635f7ec3a9d5d005669b638">MakeInputArg</a>(Args, Opts, <span class="stringliteral">"-"</span>);</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>     Inputs.push_back(std::make_pair(types::TY_C, A));</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"> 1121</span> </div>
+<div class="line"><a name="l01122"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a9e7d80a95d9d355d911720b9fbd36de8"> 1122</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e7d80a95d9d355d911720b9fbd36de8">Driver::BuildActions</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC, DerivedArgList &Args,</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>                           <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">InputList</a> &Inputs, <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Actions)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>   llvm::PrettyStackTraceString CrashInfo(<span class="stringliteral">"Building compilation actions"</span>);</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> </div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>   <span class="keywordflow">if</span> (!SuppressMissingInputWarning && Inputs.empty()) {</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_no_input_files);</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>   }</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> </div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>   Arg *FinalPhaseArg;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>   <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8">phases::ID</a> FinalPhase = getFinalPhase(Args, &FinalPhaseArg);</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> </div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>   <span class="keywordflow">if</span> (FinalPhase == <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a359521bf3e6cea8540bc8688a66b5d27">phases::Link</a> && Args.hasArg(options::OPT_emit_llvm)) {</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_emit_llvm_link);</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> </div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>   <span class="comment">// Reject -Z* at the top level, these options should never have been exposed</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>   <span class="comment">// by gcc.</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT_Z_Joined))</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_use_of_Z_option) << A->getAsString(Args);</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> </div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>   <span class="comment">// Diagnose misuse of /Fo.</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT__SLASH_Fo)) {</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>     StringRef V = A->getValue();</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>     <span class="keywordflow">if</span> (V.empty()) {</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>       <span class="comment">// It has to have a value.</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_missing_argument) << A->getSpelling() << 1;</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>       Args.eraseArg(options::OPT__SLASH_Fo);</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Inputs.size() > 1 && !llvm::sys::path::is_separator(V.back())) {</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>       <span class="comment">// Check whether /Fo tries to name an output file for multiple inputs.</span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_out_file_argument_with_multiple_sources)</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>         << A->getSpelling() << V;</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>       Args.eraseArg(options::OPT__SLASH_Fo);</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>   }</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> </div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>   <span class="comment">// Diagnose misuse of /Fa.</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT__SLASH_Fa)) {</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>     StringRef V = A->getValue();</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>     <span class="keywordflow">if</span> (Inputs.size() > 1 && !llvm::sys::path::is_separator(V.back())) {</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>       <span class="comment">// Check whether /Fa tries to name an asm file for multiple inputs.</span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_out_file_argument_with_multiple_sources)</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>         << A->getSpelling() << V;</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>       Args.eraseArg(options::OPT__SLASH_Fa);</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>     }</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>   }</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> </div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>   <span class="comment">// Diagnose misuse of /Fe.</span></div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT__SLASH_Fe)) {</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>     <span class="keywordflow">if</span> (A->getValue()[0] == <span class="charliteral">'\0'</span>) {</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>       <span class="comment">// It has to have a value.</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_missing_argument) << A->getSpelling() << 1;</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>       Args.eraseArg(options::OPT__SLASH_Fe);</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> </div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>   <span class="comment">// Construct the actions to perform.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>   <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> LinkerInputs;</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>   <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> SplitInputs;</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>   <a class="code" href="classllvm_1_1SmallVector.html">llvm::SmallVector<phases::ID, phases::MaxNumberOfPhases></a> PL;</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</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="l01183"></a><span class="lineno"> 1183</span>     <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> InputType = Inputs[i].first;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>     <span class="keyword">const</span> Arg *InputArg = Inputs[i].second;</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>     PL.clear();</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>     <a class="code" href="namespaceclang_1_1driver_1_1types.html#a20eec3ec728b1af9ad4144fc573bf55d">types::getCompilationPhases</a>(InputType, PL);</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> </div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>     <span class="comment">// If the first step comes after the final phase we are doing as part of</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>     <span class="comment">// this compilation, warn the user about it.</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>     <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8">phases::ID</a> InitialPhase = PL[0];</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>     <span class="keywordflow">if</span> (InitialPhase > FinalPhase) {</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>       <span class="comment">// Claim here to avoid the more general unused warning.</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>       InputArg->claim();</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> </div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>       <span class="comment">// Suppress all unused style warnings with -Qunused-arguments</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>       <span class="keywordflow">if</span> (Args.hasArg(options::OPT_Qunused_arguments))</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> </div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>       <span class="comment">// Special case when final phase determined by binary name, rather than</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>       <span class="comment">// by a command-line argument with a corresponding Arg.</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a515bd8fef2b4a0e0fb2ad32b990383d8" title="Whether the driver is just the preprocessor.">CCCIsCPP</a>())</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::warn_drv_input_file_unused_by_cpp)</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>           << InputArg->getAsString(Args)</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>           << <a class="code" href="namespaceclang_1_1driver_1_1phases.html#a055f43b2feb68d2a8d344d771e1b758d">getPhaseName</a>(InitialPhase);</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>       <span class="comment">// Special case '-E' warning on a previously preprocessed file to make</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>       <span class="comment">// more sense.</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (InitialPhase == <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a2636537795ed6b6b800e00e17c555598">phases::Compile</a> &&</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>                FinalPhase == <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a892c41825dd2d3e10f35a90d530fa761">phases::Preprocess</a> &&</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>                <a class="code" href="namespaceclang_1_1driver_1_1types.html#a390d7eeb3c9c81ee9e2d1a07b01f3fed">getPreprocessedType</a>(InputType) == <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718a2487e04cb21dc54505b23b7946866721">types::TY_INVALID</a>)</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::warn_drv_preprocessed_input_file_unused)</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>           << InputArg->getAsString(Args)</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>           << !!FinalPhaseArg</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>           << FinalPhaseArg ? FinalPhaseArg->getOption().getName() : <span class="stringliteral">""</span>;</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::warn_drv_input_file_unused)</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>           << InputArg->getAsString(Args)</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>           << <a class="code" href="namespaceclang_1_1driver_1_1phases.html#a055f43b2feb68d2a8d344d771e1b758d">getPhaseName</a>(InitialPhase)</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>           << !!FinalPhaseArg</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>           << FinalPhaseArg ? FinalPhaseArg->getOption().getName() : <span class="stringliteral">""</span>;</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>     }</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> </div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>     <span class="comment">// Build the pipeline for this file.</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>     <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<Action></a> <a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a>(<span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1InputAction.html">InputAction</a>(*InputArg, InputType));</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<phases::ID>::iterator</a></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>            i = PL.begin(), e = PL.end(); i != e; ++i) {</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>       <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8">phases::ID</a> Phase = *i;</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>       <span class="comment">// We are done if this step is past what the user requested.</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>       <span class="keywordflow">if</span> (Phase > FinalPhase)</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>         <span class="keywordflow">break</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="comment">// Queue linker inputs.</span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>       <span class="keywordflow">if</span> (Phase == <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a359521bf3e6cea8540bc8688a66b5d27">phases::Link</a>) {</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>         assert((i + 1) == e && <span class="stringliteral">"linking must be final compilation step."</span>);</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>         LinkerInputs.push_back(Current.take());</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>       }</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> </div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>       <span class="comment">// Some types skip the assembler phase (e.g., llvm-bc), but we can't</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>       <span class="comment">// encode this in the steps because the intermediate type depends on</span></div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>       <span class="comment">// arguments. Just special case here.</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>       <span class="keywordflow">if</span> (Phase == <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a065278bafce3ab7afc1c606bc9d5383f">phases::Assemble</a> && Current->getType() != types::TY_PP_Asm)</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> </div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>       <span class="comment">// Otherwise construct the appropriate action.</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>       Current.reset(<a class="code" href="classclang_1_1driver_1_1Driver.html#a0246b1ea3f7aa3145bcf9c75d81ac0a9">ConstructPhaseAction</a>(Args, Phase, Current.take()));</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>       <span class="keywordflow">if</span> (Current->getType() == types::TY_Nothing)</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>     }</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> </div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>     <span class="comment">// If we ended with something, add to the output list.</span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>     <span class="keywordflow">if</span> (Current)</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>       Actions.push_back(Current.take());</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> </div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>   <span class="comment">// Add a link action if necessary.</span></div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>   <span class="keywordflow">if</span> (!LinkerInputs.empty())</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>     Actions.push_back(<span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1LinkJobAction.html">LinkJobAction</a>(LinkerInputs, types::TY_Image));</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> </div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>   <span class="comment">// If we are linking, claim any options which are obviously only used for</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>   <span class="comment">// compilation.</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>   <span class="keywordflow">if</span> (FinalPhase == <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a359521bf3e6cea8540bc8688a66b5d27">phases::Link</a> && PL.size() == 1) {</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>     Args.ClaimAllArgs(options::OPT_CompileOnly_Group);</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>     Args.ClaimAllArgs(options::OPT_cl_compile_Group);</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>   }</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> </div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>   <span class="comment">// Claim ignored clang-cl options.</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>   Args.ClaimAllArgs(options::OPT_cl_ignored_Group);</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> }</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> </div>
+<div class="line"><a name="l01273"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a0246b1ea3f7aa3145bcf9c75d81ac0a9"> 1273</a></span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a0246b1ea3f7aa3145bcf9c75d81ac0a9">Driver::ConstructPhaseAction</a>(<span class="keyword">const</span> ArgList &Args, <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8">phases::ID</a> Phase,</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>                                      <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>   llvm::PrettyStackTraceString CrashInfo(<span class="stringliteral">"Constructing phase actions"</span>);</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>   <span class="comment">// Build the appropriate action.</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>   <span class="keywordflow">switch</span> (Phase) {</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a359521bf3e6cea8540bc8688a66b5d27">phases::Link</a>: llvm_unreachable(<span class="stringliteral">"link action invalid here."</span>);</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a892c41825dd2d3e10f35a90d530fa761">phases::Preprocess</a>: {</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>     <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputTy;</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>     <span class="comment">// -{M, MM} alter the output type.</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>     <span class="keywordflow">if</span> (Args.hasArg(options::OPT_M, options::OPT_MM)) {</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>       OutputTy = types::TY_Dependencies;</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>       OutputTy = Input-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>();</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>       <span class="keywordflow">if</span> (!Args.hasFlag(options::OPT_frewrite_includes,</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>                         options::OPT_fno_rewrite_includes, <span class="keyword">false</span>))</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>         OutputTy = <a class="code" href="namespaceclang_1_1driver_1_1types.html#a390d7eeb3c9c81ee9e2d1a07b01f3fed">types::getPreprocessedType</a>(OutputTy);</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>       assert(OutputTy != <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718a2487e04cb21dc54505b23b7946866721">types::TY_INVALID</a> &&</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>              <span class="stringliteral">"Cannot preprocess this input type!"</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="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1PreprocessJobAction.html">PreprocessJobAction</a>(Input, OutputTy);</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>   }</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a72f06e768873086b2b8274ad3cda4360">phases::Precompile</a>: {</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>     <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputTy = types::TY_PCH;</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>     <span class="keywordflow">if</span> (Args.hasArg(options::OPT_fsyntax_only)) {</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>       <span class="comment">// Syntax checks should not emit a PCH file</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>       OutputTy = types::TY_Nothing;</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>     }</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1PrecompileJobAction.html">PrecompileJobAction</a>(Input, OutputTy);</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>   }</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a2636537795ed6b6b800e00e17c555598">phases::Compile</a>: {</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>     <span class="keywordflow">if</span> (Args.hasArg(options::OPT_fsyntax_only)) {</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a>(Input, types::TY_Nothing);</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(options::OPT_rewrite_objc)) {</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a>(Input, types::TY_RewrittenObjC);</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(options::OPT_rewrite_legacy_objc)) {</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a>(Input, types::TY_RewrittenLegacyObjC);</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(options::OPT__analyze, options::OPT__analyze_auto)) {</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1AnalyzeJobAction.html">AnalyzeJobAction</a>(Input, types::TY_Plist);</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(options::OPT__migrate)) {</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1MigrateJobAction.html">MigrateJobAction</a>(Input, types::TY_Remap);</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(options::OPT_emit_ast)) {</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a>(Input, types::TY_AST);</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(options::OPT_module_file_info)) {</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a>(Input, types::TY_ModuleFile);</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a231caa910a84a6657df00965246c8b8a">IsUsingLTO</a>(Args)) {</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>       <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> Output =</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>         Args.hasArg(options::OPT_S) ? types::TY_LTO_IR : types::TY_LTO_BC;</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a>(Input, Output);</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Args.hasArg(options::OPT_emit_llvm)) {</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>       <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> Output =</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>         Args.hasArg(options::OPT_S) ? types::TY_LLVM_IR : types::TY_LLVM_BC;</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a>(Input, Output);</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a>(Input, types::TY_PP_Asm);</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>     }</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>   }</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8a065278bafce3ab7afc1c606bc9d5383f">phases::Assemble</a>:</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1AssembleJobAction.html">AssembleJobAction</a>(Input, types::TY_Object);</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> </div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>   llvm_unreachable(<span class="stringliteral">"invalid phase in ConstructPhaseAction"</span>);</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> }</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> </div>
+<div class="line"><a name="l01336"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a231caa910a84a6657df00965246c8b8a"> 1336</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a231caa910a84a6657df00965246c8b8a">Driver::IsUsingLTO</a>(<span class="keyword">const</span> ArgList &Args)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>   <span class="keywordflow">if</span> (Args.hasFlag(options::OPT_flto, options::OPT_fno_lto, <span class="keyword">false</span>))</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> </div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> }</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> </div>
+<div class="line"><a name="l01343"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a6832f75eb8b22ccac04e7fda869daf9c"> 1343</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a6832f75eb8b22ccac04e7fda869daf9c">Driver::BuildJobs</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>   llvm::PrettyStackTraceString CrashInfo(<span class="stringliteral">"Building compilation jobs"</span>);</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> </div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>   Arg *FinalOutput = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().getLastArg(options::OPT_o);</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> </div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>   <span class="comment">// It is an error to provide a -o option if we are making multiple output</span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>   <span class="comment">// files.</span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>   <span class="keywordflow">if</span> (FinalOutput) {</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>     <span class="keywordtype">unsigned</span> NumOutputs = 0;</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>     <span class="keywordflow">for</span> (ActionList::const_iterator it = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>().begin(),</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>            ie = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>().end(); it != ie; ++it)</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>       <span class="keywordflow">if</span> ((*it)->getType() != types::TY_Nothing)</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>         ++NumOutputs;</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> </div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>     <span class="keywordflow">if</span> (NumOutputs > 1) {</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_output_argument_with_multiple_files);</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>       FinalOutput = 0;</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</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> </div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>   <span class="comment">// Collect the list of architectures.</span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>   llvm::StringSet<> ArchNames;</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>().<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a284d9d6f7ac8fc54c91694619d5967d9">getTriple</a>().isOSDarwin()) {</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>     <span class="keywordflow">for</span> (ArgList::const_iterator it = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().begin(), ie = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().end();</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>          it != ie; ++it) {</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>       Arg *A = *it;</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>       <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_arch))</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>         ArchNames.insert(A->getValue());</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>   }</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> </div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>   <span class="keywordflow">for</span> (ActionList::const_iterator it = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>().begin(),</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>          ie = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>().end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>     <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A = *it;</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> </div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>     <span class="comment">// If we are linking an image for multiple archs then the linker wants</span></div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>     <span class="comment">// -arch_multiple and -final_output <final image name>. Unfortunately, this</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>     <span class="comment">// doesn't fit in cleanly because we have to pass this information down.</span></div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>     <span class="comment">// FIXME: This is a hack; find a cleaner way to integrate this into the</span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>     <span class="comment">// process.</span></div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *LinkingOutput = 0;</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>     <span class="keywordflow">if</span> (isa<LipoJobAction>(A)) {</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>       <span class="keywordflow">if</span> (FinalOutput)</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>         LinkingOutput = FinalOutput->getValue();</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>         LinkingOutput = <a class="code" href="classclang_1_1driver_1_1Driver.html#a3804bda66eb8c51a5039138cb1efd73a" title="Default name for linked images (e.g., "a.out").">DefaultImageName</a>.c_str();</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> </div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>     <a class="code" href="classclang_1_1driver_1_1InputInfo.html" title="InputInfo - Wrapper for information about an input source.">InputInfo</a> II;</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a303a8e37343872a33de7fccd51f9cd86">BuildJobsForAction</a>(C, A, &C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>(),</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>                        <span class="comment">/*BoundArch*/</span>0,</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>                        <span class="comment">/*AtTopLevel*/</span> <span class="keyword">true</span>,</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>                        <span class="comment">/*MultipleArchs*/</span> ArchNames.size() > 1,</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>                        <span class="comment">/*LinkingOutput*/</span> LinkingOutput,</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>                        II);</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>   }</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> </div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>   <span class="comment">// If the user passed -Qunused-arguments or there were errors, don't warn</span></div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>   <span class="comment">// about any unused arguments.</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>   <span class="keywordflow">if</span> (Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a21110920a247c38d762a8de1b7e8e767">hasErrorOccurred</a>() ||</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>       C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_Qunused_arguments))</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> </div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>   <span class="comment">// Claim -### here.</span></div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>   (void) C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__HASH_HASH_HASH);</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>   <span class="comment">// Claim --driver-mode, it was handled earlier.</span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>   (void) C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_driver_mode);</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>   <span class="keywordflow">for</span> (ArgList::const_iterator it = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().begin(), ie = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().end();</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>        it != ie; ++it) {</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>     Arg *A = *it;</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> </div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>     <span class="comment">// FIXME: It would be nice to be able to send the argument to the</span></div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>     <span class="comment">// DiagnosticsEngine, so that extra values, position, and so on could be</span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>     <span class="comment">// printed.</span></div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>     <span class="keywordflow">if</span> (!A->isClaimed()) {</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>       <span class="keywordflow">if</span> (A->getOption().hasFlag(<a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2a5ca853ba14aeaf30620fc334e3a6d055">options::NoArgumentUnused</a>))</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>         <span class="keywordflow">continue</span>;</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">// Suppress the warning automatically if this is just a flag, and it is an</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>       <span class="comment">// instance of an argument we already claimed.</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>       <span class="keyword">const</span> Option &Opt = A->getOption();</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>       <span class="keywordflow">if</span> (Opt.getKind() == Option::FlagClass) {</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>         <span class="keywordtype">bool</span> DuplicateClaimed = <span class="keyword">false</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="keywordflow">for</span> (arg_iterator it = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().filtered_begin(&Opt),</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>                ie = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().filtered_end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>           <span class="keywordflow">if</span> ((*it)->isClaimed()) {</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>             DuplicateClaimed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>             <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>           }</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>         }</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> </div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>         <span class="keywordflow">if</span> (DuplicateClaimed)</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>           <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>       }</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> </div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::warn_drv_unused_argument)</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>         << A->getAsString(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>());</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>     }</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</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"><a class="code" href="Driver_8cpp.html#a0c0197e1320b782eecaf88c71363638e"> 1448</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> *<a class="code" href="Driver_8cpp.html#a0c0197e1320b782eecaf88c71363638e">SelectToolForJob</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> *TC,</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> *JA,</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> *&Inputs) {</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> *ToolForJob = 0;</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> </div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>   <span class="comment">// See if we should look for a compiler with an integrated assembler. We match</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>   <span class="comment">// bottom up, so what we are actually looking for is an assembler job with a</span></div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>   <span class="comment">// compiler input.</span></div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> </div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>   <span class="keywordflow">if</span> (TC-><a class="code" href="classclang_1_1driver_1_1ToolChain.html#abe12cda1beebff85ae54897ed2d61bbc" title="Check if the toolchain should use the integrated assembler.">useIntegratedAs</a>() &&</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>       !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_save_temps) &&</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>       !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__SLASH_FA) &&</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>       !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__SLASH_Fa) &&</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>       isa<AssembleJobAction>(JA) &&</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>       Inputs->size() == 1 && isa<CompileJobAction>(*Inputs->begin())) {</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> *Compiler =</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>       TC-><a class="code" href="classclang_1_1driver_1_1ToolChain.html#abe23ab6d18e464a02378d799ea125c81" title="Choose a tool to use to handle the action JA.">SelectTool</a>(cast<JobAction>(**Inputs->begin()));</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>     <span class="keywordflow">if</span> (!Compiler)</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>       <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>     <span class="keywordflow">if</span> (Compiler-><a class="code" href="classclang_1_1driver_1_1Tool.html#a614da693e7a971ac4969e0f6f3b7e305">hasIntegratedAssembler</a>()) {</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>       Inputs = &(*Inputs)[0]->getInputs();</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>       ToolForJob = Compiler;</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>     }</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>   }</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>   <span class="comment">// Otherwise use the tool for the current job.</span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>   <span class="keywordflow">if</span> (!ToolForJob)</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>     ToolForJob = TC-><a class="code" href="classclang_1_1driver_1_1ToolChain.html#abe23ab6d18e464a02378d799ea125c81" title="Choose a tool to use to handle the action JA.">SelectTool</a>(*JA);</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> </div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>   <span class="comment">// See if we should use an integrated preprocessor. We do so when we have</span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>   <span class="comment">// exactly one input, since this is the only use case we care about</span></div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>   <span class="comment">// (irrelevant since we don't support combine yet).</span></div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>   <span class="keywordflow">if</span> (Inputs->size() == 1 && isa<PreprocessJobAction>(*Inputs->begin()) &&</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>       !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_no_integrated_cpp) &&</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>       !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_traditional_cpp) &&</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>       !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_save_temps) &&</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>       !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_rewrite_objc) &&</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>       ToolForJob-><a class="code" href="classclang_1_1driver_1_1Tool.html#aa7609580a526c931eebec53740f29cc2">hasIntegratedCPP</a>())</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>     Inputs = &(*Inputs)[0]->getInputs();</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> </div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>   <span class="keywordflow">return</span> ToolForJob;</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> }</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> </div>
+<div class="line"><a name="l01491"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a303a8e37343872a33de7fccd51f9cd86"> 1491</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a303a8e37343872a33de7fccd51f9cd86">Driver::BuildJobsForAction</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C,</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>                                 <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A,</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>                                 <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> *TC,</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *BoundArch,</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>                                 <span class="keywordtype">bool</span> AtTopLevel,</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>                                 <span class="keywordtype">bool</span> MultipleArchs,</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *LinkingOutput,</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>                                 <a class="code" href="classclang_1_1driver_1_1InputInfo.html" title="InputInfo - Wrapper for information about an input source.">InputInfo</a> &Result)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>   llvm::PrettyStackTraceString CrashInfo(<span class="stringliteral">"Building compilation jobs"</span>);</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> (<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1InputAction.html">InputAction</a> *IA = dyn_cast<InputAction>(A)) {</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>     <span class="comment">// FIXME: It would be nice to not claim this here; maybe the old scheme of</span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>     <span class="comment">// just using Args was better?</span></div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>     <span class="keyword">const</span> Arg &<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a> = IA->getInputArg();</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>     Input.claim();</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>     <span class="keywordflow">if</span> (Input.getOption().matches(options::OPT_INPUT)) {</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>       <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a> = Input.getValue();</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>       Result = <a class="code" href="classclang_1_1driver_1_1InputInfo.html" title="InputInfo - Wrapper for information about an input source.">InputInfo</a>(Name, A-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>(), <a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a>);</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>     } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>       Result = <a class="code" href="classclang_1_1driver_1_1InputInfo.html" title="InputInfo - Wrapper for information about an input source.">InputInfo</a>(&Input, A-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>(), <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>     <span class="keywordflow">return</span>;</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>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1BindArchAction.html">BindArchAction</a> *BAA = dyn_cast<BindArchAction>(A)) {</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> *TC;</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *ArchName = BAA-><a class="code" href="classclang_1_1driver_1_1ToolChain.html#a1d948458a086f3e2703e017449cd6a54">getArchName</a>();</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>     <span class="keywordflow">if</span> (ArchName)</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>       TC = &getToolChain(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), ArchName);</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>       TC = &C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>();</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>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a303a8e37343872a33de7fccd51f9cd86">BuildJobsForAction</a>(C, *BAA->begin(), TC, BAA->getArchName(),</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>                        AtTopLevel, MultipleArchs, LinkingOutput, Result);</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>     <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>   <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> *Inputs = &A-><a class="code" href="classclang_1_1driver_1_1Action.html#ae257c93dfc84c9d4999d4d99913f0b77">getInputs</a>();</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> </div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> *JA = cast<JobAction>(A);</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> *T = <a class="code" href="Driver_8cpp.html#a0c0197e1320b782eecaf88c71363638e">SelectToolForJob</a>(C, TC, JA, Inputs);</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>   <span class="keywordflow">if</span> (!T)</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> </div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>   <span class="comment">// Only use pipes when there is exactly one input.</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>   <a class="code" href="classllvm_1_1SmallVector.html">InputInfoList</a> InputInfos;</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>   <span class="keywordflow">for</span> (ActionList::const_iterator it = Inputs->begin(), ie = Inputs->end();</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>        it != ie; ++it) {</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>     <span class="comment">// Treat dsymutil and verify sub-jobs as being at the top-level too, they</span></div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>     <span class="comment">// shouldn't get temporary output names.</span></div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>     <span class="comment">// FIXME: Clean this up.</span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>     <span class="keywordtype">bool</span> SubJobAtTopLevel = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>     <span class="keywordflow">if</span> (AtTopLevel && (isa<DsymutilJobAction>(A) || isa<VerifyJobAction>(A)))</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>       SubJobAtTopLevel = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> </div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>     <a class="code" href="classclang_1_1driver_1_1InputInfo.html" title="InputInfo - Wrapper for information about an input source.">InputInfo</a> II;</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a303a8e37343872a33de7fccd51f9cd86">BuildJobsForAction</a>(C, *it, TC, BoundArch, SubJobAtTopLevel, MultipleArchs,</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>                        LinkingOutput, II);</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>     InputInfos.push_back(II);</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>   }</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> </div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>   <span class="comment">// Always use the first input as the base input.</span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *BaseInput = InputInfos[0].getBaseInput();</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> </div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>   <span class="comment">// ... except dsymutil actions, which use their actual input as the base</span></div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>   <span class="comment">// input.</span></div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>   <span class="keywordflow">if</span> (JA-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_dSYM)</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>     BaseInput = InputInfos[0].getFilename();</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="comment">// Determine the place to write output to, if any.</span></div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>   <span class="keywordflow">if</span> (JA-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_Nothing)</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>     Result = <a class="code" href="classclang_1_1driver_1_1InputInfo.html" title="InputInfo - Wrapper for information about an input source.">InputInfo</a>(A-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>(), BaseInput);</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>     Result = <a class="code" href="classclang_1_1driver_1_1InputInfo.html" title="InputInfo - Wrapper for information about an input source.">InputInfo</a>(<a class="code" href="classclang_1_1driver_1_1Driver.html#ad58c6df460f2b68c1d8369b6ccbca902">GetNamedOutputPath</a>(C, *JA, BaseInput, BoundArch,</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>                                           AtTopLevel, MultipleArchs),</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>                        A-><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>(), BaseInput);</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> </div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a5040400b3d6bec2e8d1942bca7a9c5ca" title="Only print tool bindings, don't build any jobs.">CCCPrintBindings</a> && !<a class="code" href="classclang_1_1driver_1_1Driver.html#a58be750f07387f656ee77c8122697c06" title="Whether the driver is generating diagnostics for debugging purposes.">CCGenDiagnostics</a>) {</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>     llvm::errs() << <span class="stringliteral">"# \""</span> << T->getToolChain().getTripleString() << <span class="charliteral">'"'</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>                  << <span class="stringliteral">" - \""</span> << T->getName() << <span class="stringliteral">"\", inputs: ["</span>;</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = InputInfos.size(); i != e; ++i) {</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>       llvm::errs() << InputInfos[i].getAsString();</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>       <span class="keywordflow">if</span> (i + 1 != e)</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>         llvm::errs() << <span class="stringliteral">", "</span>;</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>     }</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>     llvm::errs() << <span class="stringliteral">"], output: "</span> << Result.<a class="code" href="classclang_1_1driver_1_1InputInfo.html#a7c80ac6887b7234f9d75d1f6b2645efc">getAsString</a>() << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>     T->ConstructJob(C, *JA, Result, InputInfos,</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>                     C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a90be4f0c82ee360f4f0c54b14d56df70">getArgsForToolChain</a>(TC, BoundArch), LinkingOutput);</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>   }</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> }</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> <span class="comment"></span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="comment">/// \brief Create output filename based on ArgValue, which could either be a</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> <span class="comment">/// full filename, filename without extension, or a directory. If ArgValue</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="comment">/// does not provide a filename, then use BaseName, and use the extension</span></div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> <span class="comment">/// suitable for FileType.</span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"><a class="code" href="Driver_8cpp.html#a512233a67fceeb7d8ed03841049b674e"> 1587</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="Driver_8cpp.html#a512233a67fceeb7d8ed03841049b674e" title="Create output filename based on ArgValue, which could either be a full filename, filename without ext...">MakeCLOutputFilename</a>(<span class="keyword">const</span> ArgList &Args, StringRef ArgValue,</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>                                         StringRef BaseName, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> FileType) {</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> Filename = ArgValue;</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>   </div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>   <span class="keywordflow">if</span> (ArgValue.empty()) {</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>     <span class="comment">// If the argument is empty, output to BaseName in the current dir.</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>     Filename = BaseName;</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (llvm::sys::path::is_separator(Filename.back())) {</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>     <span class="comment">// If the argument is a directory, output to BaseName in that dir.</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>     llvm::sys::path::append(Filename, BaseName);</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> </div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>   <span class="keywordflow">if</span> (!llvm::sys::path::has_extension(ArgValue)) {</div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>     <span class="comment">// If the argument didn't provide an extension, then set it.</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *Extension = <a class="code" href="namespaceclang_1_1driver_1_1types.html#a1c41a5f3fb6896d11147f2d773f4c78d">types::getTypeTempSuffix</a>(FileType, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> </div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>     <span class="keywordflow">if</span> (FileType == types::TY_Image &&</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>         Args.hasArg(options::OPT__SLASH_LD, options::OPT__SLASH_LDd)) {</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>       <span class="comment">// The output file is a dll.</span></div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>       Extension = <span class="stringliteral">"dll"</span>;</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>     }</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> </div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>     llvm::sys::path::replace_extension(Filename, Extension);</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>   }</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> </div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>   <span class="keywordflow">return</span> Args.MakeArgString(Filename.c_str());</div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> }</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> </div>
+<div class="line"><a name="l01615"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#ad58c6df460f2b68c1d8369b6ccbca902"> 1615</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#ad58c6df460f2b68c1d8369b6ccbca902">Driver::GetNamedOutputPath</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C,</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> &JA,</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>                                        <span class="keyword">const</span> <span class="keywordtype">char</span> *BaseInput,</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>                                        <span class="keyword">const</span> <span class="keywordtype">char</span> *BoundArch,</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>                                        <span class="keywordtype">bool</span> AtTopLevel,</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>                                        <span class="keywordtype">bool</span> MultipleArchs)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>   llvm::PrettyStackTraceString CrashInfo(<span class="stringliteral">"Computing output path"</span>);</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>   <span class="comment">// Output to a user requested destination?</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>   <span class="keywordflow">if</span> (AtTopLevel && !isa<DsymutilJobAction>(JA) &&</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>       !isa<VerifyJobAction>(JA)) {</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>     <span class="keywordflow">if</span> (Arg *FinalOutput = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().getLastArg(options::OPT_o))</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>       <span class="keywordflow">return</span> C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a78bf2dc96ba983b17e0e8c7cb2cd8c05">addResultFile</a>(FinalOutput->getValue(), &JA);</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> </div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>   <span class="comment">// Default to writing to stdout?</span></div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>   <span class="keywordflow">if</span> (AtTopLevel && !<a class="code" href="classclang_1_1driver_1_1Driver.html#a58be750f07387f656ee77c8122697c06" title="Whether the driver is generating diagnostics for debugging purposes.">CCGenDiagnostics</a> &&</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>       (isa<PreprocessJobAction>(JA) || JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_ModuleFile))</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>     <span class="keywordflow">return</span> <span class="stringliteral">"-"</span>;</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> </div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>   <span class="comment">// Is this the assembly listing for /FA?</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>   <span class="keywordflow">if</span> (JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_PP_Asm &&</div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>       (C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__SLASH_FA) ||</div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>        C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__SLASH_Fa))) {</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>     <span class="comment">// Use /Fa and the input filename to determine the asm file name.</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>     StringRef BaseName = llvm::sys::path::filename(BaseInput);</div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>     StringRef FaValue = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().getLastArgValue(options::OPT__SLASH_Fa);</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>     <span class="keywordflow">return</span> C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a78bf2dc96ba983b17e0e8c7cb2cd8c05">addResultFile</a>(<a class="code" href="Driver_8cpp.html#a512233a67fceeb7d8ed03841049b674e" title="Create output filename based on ArgValue, which could either be a full filename, filename without ext...">MakeCLOutputFilename</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), FaValue, BaseName,</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>                                                 JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>()), &JA);</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>   }</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> </div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>   <span class="comment">// Output to a temporary file?</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>   <span class="keywordflow">if</span> ((!AtTopLevel && !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_save_temps) &&</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>         !C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__SLASH_Fo)) ||</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a58be750f07387f656ee77c8122697c06" title="Whether the driver is generating diagnostics for debugging purposes.">CCGenDiagnostics</a>) {</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>     StringRef <a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a> = llvm::sys::path::filename(BaseInput);</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>     std::pair<StringRef, StringRef> Split = Name.split(<span class="charliteral">'.'</span>);</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>     std::string TmpName =</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#abc30f9d77ac6910b45e52d239a49f320">GetTemporaryPath</a>(Split.first,</div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>           <a class="code" href="namespaceclang_1_1driver_1_1types.html#a1c41a5f3fb6896d11147f2d773f4c78d">types::getTypeTempSuffix</a>(JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>(), <a class="code" href="classclang_1_1driver_1_1Driver.html#a8bf0fba5eeeecd369faa9fe70af373f8" title="Whether the driver should follow cl.exe like behavior.">IsCLMode</a>()));</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>     <span class="keywordflow">return</span> C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a5eb6ace2daf11fd6a3a28603e26f487c">addTempFile</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().MakeArgString(TmpName.c_str()));</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>   }</div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> </div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> BasePath(BaseInput);</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>   StringRef BaseName;</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> </div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>   <span class="comment">// Dsymutil actions should use the full path.</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>   <span class="keywordflow">if</span> (isa<DsymutilJobAction>(JA) || isa<VerifyJobAction>(JA))</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>     BaseName = BasePath;</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>     BaseName = llvm::sys::path::filename(BasePath);</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> </div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>   <span class="comment">// Determine what the derived output name should be.</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *NamedOutput;</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> </div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>   <span class="keywordflow">if</span> (JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_Object &&</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>       C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__SLASH_Fo)) {</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>     <span class="comment">// The /Fo flag decides the object filename.</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>     StringRef Val = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().getLastArg(options::OPT__SLASH_Fo)->getValue();</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>     NamedOutput = <a class="code" href="Driver_8cpp.html#a512233a67fceeb7d8ed03841049b674e" title="Create output filename based on ArgValue, which could either be a full filename, filename without ext...">MakeCLOutputFilename</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), Val, BaseName,</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>                                        types::TY_Object);</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_Image &&</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>              C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT__SLASH_Fe)) {</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>     <span class="comment">// The /Fe flag names the linked file.</span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>     StringRef Val = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().getLastArg(options::OPT__SLASH_Fe)->getValue();</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>     NamedOutput = <a class="code" href="Driver_8cpp.html#a512233a67fceeb7d8ed03841049b674e" title="Create output filename based on ArgValue, which could either be a full filename, filename without ext...">MakeCLOutputFilename</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), Val, BaseName,</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>                                        types::TY_Image);</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_Image) {</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Driver.html#a8bf0fba5eeeecd369faa9fe70af373f8" title="Whether the driver should follow cl.exe like behavior.">IsCLMode</a>()) {</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>       <span class="comment">// clang-cl uses BaseName for the executable name.</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>       NamedOutput = <a class="code" href="Driver_8cpp.html#a512233a67fceeb7d8ed03841049b674e" title="Create output filename based on ArgValue, which could either be a full filename, filename without ext...">MakeCLOutputFilename</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>(), <span class="stringliteral">""</span>, BaseName,</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>                                          types::TY_Image);</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (MultipleArchs && BoundArch) {</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>       <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> Output(<a class="code" href="classclang_1_1driver_1_1Driver.html#a3804bda66eb8c51a5039138cb1efd73a" title="Default name for linked images (e.g., "a.out").">DefaultImageName</a>.c_str());</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>       Output += <span class="stringliteral">"-"</span>;</div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>       Output.append(BoundArch);</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>       NamedOutput = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().MakeArgString(Output.c_str());</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>     } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>       NamedOutput = <a class="code" href="classclang_1_1driver_1_1Driver.html#a3804bda66eb8c51a5039138cb1efd73a" title="Default name for linked images (e.g., "a.out").">DefaultImageName</a>.c_str();</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *Suffix = <a class="code" href="namespaceclang_1_1driver_1_1types.html#a1c41a5f3fb6896d11147f2d773f4c78d">types::getTypeTempSuffix</a>(JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>(), <a class="code" href="classclang_1_1driver_1_1Driver.html#a8bf0fba5eeeecd369faa9fe70af373f8" title="Whether the driver should follow cl.exe like behavior.">IsCLMode</a>());</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>     assert(Suffix && <span class="stringliteral">"All types used for output should have a suffix."</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>     std::string::size_type End = std::string::npos;</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>     <span class="keywordflow">if</span> (!<a class="code" href="namespaceclang_1_1driver_1_1types.html#ac9fe20cc6117f9a08fbd7f373907f4b0">types::appendSuffixForType</a>(JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>()))</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>       End = BaseName.rfind(<span class="charliteral">'.'</span>);</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> Suffixed(BaseName.substr(0, End));</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>     <span class="keywordflow">if</span> (MultipleArchs && BoundArch) {</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>       Suffixed += <span class="stringliteral">"-"</span>;</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>       Suffixed.append(BoundArch);</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>     Suffixed += <span class="charliteral">'.'</span>;</div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>     Suffixed += Suffix;</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>     NamedOutput = C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().MakeArgString(Suffixed.c_str());</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>   }</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> </div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>   <span class="comment">// If we're saving temps and the temp file conflicts with the input file,</span></div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>   <span class="comment">// then avoid overwriting input file.</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>   <span class="keywordflow">if</span> (!AtTopLevel && C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_save_temps) &&</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>       NamedOutput == BaseName) {</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">bool</span> SameFile = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<256></a> Result;</div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>     llvm::sys::fs::current_path(Result);</div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>     llvm::sys::path::append(Result, BaseName);</div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>     llvm::sys::fs::equivalent(BaseInput, Result.c_str(), SameFile);</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>     <span class="comment">// Must share the same path to conflict.</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>     <span class="keywordflow">if</span> (SameFile) {</div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>       StringRef <a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a> = llvm::sys::path::filename(BaseInput);</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>       std::pair<StringRef, StringRef> Split = Name.split(<span class="charliteral">'.'</span>);</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>       std::string TmpName =</div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>         <a class="code" href="classclang_1_1driver_1_1Driver.html#abc30f9d77ac6910b45e52d239a49f320">GetTemporaryPath</a>(Split.first,</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>             <a class="code" href="namespaceclang_1_1driver_1_1types.html#a1c41a5f3fb6896d11147f2d773f4c78d">types::getTypeTempSuffix</a>(JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>(), <a class="code" href="classclang_1_1driver_1_1Driver.html#a8bf0fba5eeeecd369faa9fe70af373f8" title="Whether the driver should follow cl.exe like behavior.">IsCLMode</a>()));</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>       <span class="keywordflow">return</span> C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a5eb6ace2daf11fd6a3a28603e26f487c">addTempFile</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().MakeArgString(TmpName.c_str()));</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>   }</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> </div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>   <span class="comment">// As an annoying special case, PCH generation doesn't strip the pathname.</span></div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>   <span class="keywordflow">if</span> (JA.<a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>() == types::TY_PCH) {</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>     llvm::sys::path::remove_filename(BasePath);</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>     <span class="keywordflow">if</span> (BasePath.empty())</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>       BasePath = NamedOutput;</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>       llvm::sys::path::append(BasePath, NamedOutput);</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>     <span class="keywordflow">return</span> C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a78bf2dc96ba983b17e0e8c7cb2cd8c05">addResultFile</a>(C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().MakeArgString(BasePath.c_str()), &JA);</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>     <span class="keywordflow">return</span> C.<a class="code" href="classclang_1_1driver_1_1Compilation.html#a78bf2dc96ba983b17e0e8c7cb2cd8c05">addResultFile</a>(NamedOutput, &JA);</div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>   }</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> }</div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> </div>
+<div class="line"><a name="l01744"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a0149be428cc7aad47825743369e6d9f9"> 1744</a></span> std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a0149be428cc7aad47825743369e6d9f9">Driver::GetFilePath</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Name, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>   <span class="comment">// Respect a limited subset of the '-Bprefix' functionality in GCC by</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>   <span class="comment">// attempting to use this prefix when looking for file paths.</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>   <span class="keywordflow">for</span> (Driver::prefix_list::const_iterator it = <a class="code" href="classclang_1_1driver_1_1Driver.html#ade69d44e010fa1943fab5f2a16c815a1">PrefixDirs</a>.begin(),</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>        ie = <a class="code" href="classclang_1_1driver_1_1Driver.html#ade69d44e010fa1943fab5f2a16c815a1">PrefixDirs</a>.end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>     std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#ac2e921652102bc5ebed73ac600f1e63c">Dir</a>(*it);</div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>     <span class="keywordflow">if</span> (Dir.empty())</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>     <span class="keywordflow">if</span> (Dir[0] == <span class="charliteral">'='</span>)</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>       Dir = <a class="code" href="classclang_1_1driver_1_1Driver.html#a0339340ab6987b95840159f00852e733" title="sysroot, if present">SysRoot</a> + Dir.substr(1);</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(Dir);</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>     llvm::sys::path::append(P, Name);</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>     <span class="keywordflow">if</span> (llvm::sys::fs::exists(Twine(P)))</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>       <span class="keywordflow">return</span> P.str();</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>   }</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> </div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(<a class="code" href="classclang_1_1driver_1_1Driver.html#ab6e86cc00f556e22bb9f89d07bfcc065" title="The path to the compiler resource directory.">ResourceDir</a>);</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>   llvm::sys::path::append(P, Name);</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>   <span class="keywordflow">if</span> (llvm::sys::fs::exists(Twine(P)))</div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>     <span class="keywordflow">return</span> P.str();</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> </div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html#aabe60e396fb69cec9bdb65287e886f9b">ToolChain::path_list</a> &List = TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#a13a68a2e273162f73d44b117e195e1ab">getFilePaths</a>();</div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>   <span class="keywordflow">for</span> (ToolChain::path_list::const_iterator</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>          it = List.begin(), ie = List.end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>     std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#ac2e921652102bc5ebed73ac600f1e63c">Dir</a>(*it);</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>     <span class="keywordflow">if</span> (Dir.empty())</div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>     <span class="keywordflow">if</span> (Dir[0] == <span class="charliteral">'='</span>)</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>       Dir = <a class="code" href="classclang_1_1driver_1_1Driver.html#a0339340ab6987b95840159f00852e733" title="sysroot, if present">SysRoot</a> + Dir.substr(1);</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(Dir);</div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>     llvm::sys::path::append(P, Name);</div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>     <span class="keywordflow">if</span> (llvm::sys::fs::exists(Twine(P)))</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>       <span class="keywordflow">return</span> P.str();</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</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>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a>;</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> }</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> </div>
+<div class="line"><a name="l01782"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a906f4866c7d598e6a5a676c9a8ccf942"> 1782</a></span> std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a906f4866c7d598e6a5a676c9a8ccf942">Driver::GetProgramPath</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Name,</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>                                    <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>   <span class="comment">// FIXME: Needs a better variable than DefaultTargetTriple</span></div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>   std::string TargetSpecificExecutable(<a class="code" href="classclang_1_1driver_1_1Driver.html#afc30d904f7d861095e669518ae56ebca" title="Default target triple.">DefaultTargetTriple</a> + <span class="stringliteral">"-"</span> + Name);</div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>   <span class="comment">// Respect a limited subset of the '-Bprefix' functionality in GCC by</span></div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>   <span class="comment">// attempting to use this prefix when looking for program paths.</span></div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>   <span class="keywordflow">for</span> (Driver::prefix_list::const_iterator it = <a class="code" href="classclang_1_1driver_1_1Driver.html#ade69d44e010fa1943fab5f2a16c815a1">PrefixDirs</a>.begin(),</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>        ie = <a class="code" href="classclang_1_1driver_1_1Driver.html#ade69d44e010fa1943fab5f2a16c815a1">PrefixDirs</a>.end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>     <span class="keywordflow">if</span> (llvm::sys::fs::is_directory(*it)) {</div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>       <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(*it);</div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>       llvm::sys::path::append(P, TargetSpecificExecutable);</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>       <span class="keywordflow">if</span> (llvm::sys::fs::can_execute(Twine(P)))</div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>         <span class="keywordflow">return</span> P.str();</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>       llvm::sys::path::remove_filename(P);</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>       llvm::sys::path::append(P, Name);</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>       <span class="keywordflow">if</span> (llvm::sys::fs::can_execute(Twine(P)))</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>         <span class="keywordflow">return</span> P.str();</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>       <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(*it + Name);</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>       <span class="keywordflow">if</span> (llvm::sys::fs::can_execute(Twine(P)))</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>         <span class="keywordflow">return</span> P.str();</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>   }</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> </div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html#aabe60e396fb69cec9bdb65287e886f9b">ToolChain::path_list</a> &List = TC.<a class="code" href="classclang_1_1driver_1_1ToolChain.html#acd60ca390f47b6cb2438f31c6ac0efdf">getProgramPaths</a>();</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>   <span class="keywordflow">for</span> (ToolChain::path_list::const_iterator</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>          it = List.begin(), ie = List.end(); it != ie; ++it) {</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(*it);</div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>     llvm::sys::path::append(P, TargetSpecificExecutable);</div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>     <span class="keywordflow">if</span> (llvm::sys::fs::can_execute(Twine(P)))</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>       <span class="keywordflow">return</span> P.str();</div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>     llvm::sys::path::remove_filename(P);</div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>     llvm::sys::path::append(P, Name);</div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>     <span class="keywordflow">if</span> (llvm::sys::fs::can_execute(Twine(P)))</div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>       <span class="keywordflow">return</span> P.str();</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>   }</div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> </div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>   <span class="comment">// If all else failed, search the path.</span></div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>   std::string <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(llvm::sys::FindProgramByName(TargetSpecificExecutable));</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>   <span class="keywordflow">if</span> (!P.empty())</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>     <span class="keywordflow">return</span> P;</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> </div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>   P = llvm::sys::FindProgramByName(Name);</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>   <span class="keywordflow">if</span> (!P.empty())</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>     <span class="keywordflow">return</span> P;</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>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a>;</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> }</div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> </div>
+<div class="line"><a name="l01831"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#abc30f9d77ac6910b45e52d239a49f320"> 1831</a></span> std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#abc30f9d77ac6910b45e52d239a49f320">Driver::GetTemporaryPath</a>(StringRef Prefix, <span class="keyword">const</span> <span class="keywordtype">char</span> *Suffix)<span class="keyword"></span></div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="keyword">  const </span>{</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> Path;</div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>   llvm::error_code EC =</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>       llvm::sys::fs::createTemporaryFile(Prefix, Suffix, Path);</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>   <span class="keywordflow">if</span> (EC) {</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_unable_to_make_temp) << EC.message();</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>     <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>   }</div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> </div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>   <span class="keywordflow">return</span> Path.str();</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> }</div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span> <span class="comment"></span></div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span> <span class="comment">/// \brief Compute target triple from args.</span></div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> <span class="comment">/// This routine provides the logic to compute a target triple from various</span></div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> <span class="comment">/// args passed to the driver and the default triple string.</span></div>
+<div class="line"><a name="l01848"></a><span class="lineno"><a class="code" href="Driver_8cpp.html#a334862aac16126e087fd252a1f9a3b9b"> 1848</a></span> <span class="comment"></span><span class="keyword">static</span> llvm::Triple <a class="code" href="Driver_8cpp.html#a334862aac16126e087fd252a1f9a3b9b" title="Compute target triple from args.">computeTargetTriple</a>(StringRef DefaultTargetTriple,</div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>                                         <span class="keyword">const</span> ArgList &Args,</div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>                                         StringRef DarwinArchName) {</div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>   <span class="comment">// FIXME: Already done in Compilation *Driver::BuildCompilation</span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> Arg *A = Args.getLastArg(options::OPT_target))</div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>     DefaultTargetTriple = A->getValue();</div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> </div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>   llvm::Triple Target(llvm::Triple::normalize(DefaultTargetTriple));</div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> </div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>   <span class="comment">// Handle Darwin-specific options available here.</span></div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>   <span class="keywordflow">if</span> (Target.isOSDarwin()) {</div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>     <span class="comment">// If an explict Darwin arch name is given, that trumps all.</span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>     <span class="keywordflow">if</span> (!DarwinArchName.empty()) {</div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>       Target.setArch(</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>         <a class="code" href="namespaceclang_1_1driver_1_1tools_1_1darwin.html#a8d01ae2580551031c1f49d867f3d76af">tools::darwin::getArchTypeForDarwinArchName</a>(DarwinArchName));</div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>       <span class="keywordflow">return</span> Target;</div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>     }</div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> </div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>     <span class="comment">// Handle the Darwin '-arch' flag.</span></div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>     <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT_arch)) {</div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>       llvm::Triple::ArchType DarwinArch</div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>         = <a class="code" href="namespaceclang_1_1driver_1_1tools_1_1darwin.html#a8d01ae2580551031c1f49d867f3d76af">tools::darwin::getArchTypeForDarwinArchName</a>(A->getValue());</div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>       <span class="keywordflow">if</span> (DarwinArch != llvm::Triple::UnknownArch)</div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>         Target.setArch(DarwinArch);</div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>     }</div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>   }</div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> </div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>   <span class="comment">// Handle pseudo-target flags '-EL' and '-EB'.</span></div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT_EL, options::OPT_EB)) {</div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_EL)) {</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::mips)</div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>         Target.setArch(llvm::Triple::mipsel);</div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::mips64)</div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>         Target.setArch(llvm::Triple::mips64el);</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::mipsel)</div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>         Target.setArch(llvm::Triple::mips);</div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::mips64el)</div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>         Target.setArch(llvm::Triple::mips64);</div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>     }</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>   }</div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span> </div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>   <span class="comment">// Skip further flag support on OSes which don't support '-m32' or '-m64'.</span></div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>   <span class="keywordflow">if</span> (Target.getArchName() == <span class="stringliteral">"tce"</span> ||</div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>       Target.getOS() == llvm::Triple::AuroraUX ||</div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>       Target.getOS() == llvm::Triple::Minix)</div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>     <span class="keywordflow">return</span> Target;</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> </div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>   <span class="comment">// Handle pseudo-target flags '-m32' and '-m64'.</span></div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>   <span class="comment">// FIXME: Should this information be in llvm::Triple?</span></div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>   <span class="keywordflow">if</span> (Arg *A = Args.getLastArg(options::OPT_m32, options::OPT_m64)) {</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>     <span class="keywordflow">if</span> (A->getOption().matches(options::OPT_m32)) {</div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::x86_64)</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>         Target.setArch(llvm::Triple::x86);</div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::ppc64)</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>         Target.setArch(llvm::Triple::ppc);</div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::x86)</div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>         Target.setArch(llvm::Triple::x86_64);</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::ppc)</div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>         Target.setArch(llvm::Triple::ppc64);</div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>     }</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>   }</div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> </div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>   <span class="keywordflow">return</span> Target;</div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> }</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> </div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &Driver::getToolChain(<span class="keyword">const</span> ArgList &Args,</div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>                                       StringRef DarwinArchName)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>   llvm::Triple Target = <a class="code" href="Driver_8cpp.html#a334862aac16126e087fd252a1f9a3b9b" title="Compute target triple from args.">computeTargetTriple</a>(<a class="code" href="classclang_1_1driver_1_1Driver.html#afc30d904f7d861095e669518ae56ebca" title="Default target triple.">DefaultTargetTriple</a>, Args,</div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>                                             DarwinArchName);</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> </div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>   <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> *&TC = ToolChains[Target.str()];</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>   <span class="keywordflow">if</span> (!TC) {</div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>     <span class="keywordflow">switch</span> (Target.getOS()) {</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>     <span class="keywordflow">case</span> llvm::Triple::AuroraUX:</div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1AuroraUX.html">toolchains::AuroraUX</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>     <span class="keywordflow">case</span> llvm::Triple::Darwin:</div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>     <span class="keywordflow">case</span> llvm::Triple::MacOSX:</div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>     <span class="keywordflow">case</span> llvm::Triple::IOS:</div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::x86 ||</div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>           Target.getArch() == llvm::Triple::x86_64 ||</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>           Target.getArch() == llvm::Triple::arm ||</div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>           Target.getArch() == llvm::Triple::thumb)</div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>         TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1DarwinClang.html" title="DarwinClang - The Darwin toolchain used by Clang.">toolchains::DarwinClang</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>         TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Darwin__Generic__GCC.html" title="Darwin_Generic_GCC - Generic Darwin tool chain using gcc.">toolchains::Darwin_Generic_GCC</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>     <span class="keywordflow">case</span> llvm::Triple::DragonFly:</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1DragonFly.html">toolchains::DragonFly</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>     <span class="keywordflow">case</span> llvm::Triple::OpenBSD:</div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1OpenBSD.html">toolchains::OpenBSD</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>     <span class="keywordflow">case</span> llvm::Triple::Bitrig:</div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Bitrig.html">toolchains::Bitrig</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>     <span class="keywordflow">case</span> llvm::Triple::NetBSD:</div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1NetBSD.html">toolchains::NetBSD</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>     <span class="keywordflow">case</span> llvm::Triple::FreeBSD:</div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1FreeBSD.html">toolchains::FreeBSD</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>     <span class="keywordflow">case</span> llvm::Triple::Minix:</div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Minix.html">toolchains::Minix</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>     <span class="keywordflow">case</span> llvm::Triple::Linux:</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::hexagon)</div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>         TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Hexagon__TC.html">toolchains::Hexagon_TC</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>         TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Linux.html">toolchains::Linux</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>     <span class="keywordflow">case</span> llvm::Triple::Solaris:</div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Solaris.html">toolchains::Solaris</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>     <span class="keywordflow">case</span> llvm::Triple::Win32:</div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Windows.html">toolchains::Windows</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>     <span class="keywordflow">case</span> llvm::Triple::MinGW32:</div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>       <span class="comment">// FIXME: We need a MinGW toolchain. Fallthrough for now.</span></div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>       <span class="comment">// TCE is an OSless target</span></div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>       <span class="keywordflow">if</span> (Target.getArchName() == <span class="stringliteral">"tce"</span>) {</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>         TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1TCEToolChain.html">toolchains::TCEToolChain</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>       }</div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>       <span class="comment">// If Hexagon is configured as an OSless target</span></div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::hexagon) {</div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>         TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Hexagon__TC.html">toolchains::Hexagon_TC</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>       }</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>       <span class="keywordflow">if</span> (Target.getArch() == llvm::Triple::xcore) {</div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>         TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1XCore.html">toolchains::XCore</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>       }</div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>       TC = <span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1toolchains_1_1Generic__GCC.html">toolchains::Generic_GCC</a>(*<span class="keyword">this</span>, Target, Args);</div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>     }</div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>   }</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>   <span class="keywordflow">return</span> *TC;</div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> }</div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> </div>
+<div class="line"><a name="l01991"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a6b4bc106db6e7ef296ff890fbcb3ea67"> 1991</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a6b4bc106db6e7ef296ff890fbcb3ea67">Driver::ShouldUseClangCompiler</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> &JA)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>   <span class="comment">// Check if user requested no clang, or clang doesn't understand this type (we</span></div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>   <span class="comment">// only handle single inputs for now).</span></div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>   <span class="keywordflow">if</span> (JA.<a class="code" href="classclang_1_1driver_1_1Action.html#a5dc74b8819ebdf6f465c3037e94d8406">size</a>() != 1 ||</div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>       !<a class="code" href="namespaceclang_1_1driver_1_1types.html#ac97e7b27e4ce6ad6f289e834e9485d9f" title="isAcceptedByClang - Can clang handle this input type.">types::isAcceptedByClang</a>((*JA.<a class="code" href="classclang_1_1driver_1_1Action.html#a5f5f713cfeadf8708788ccfb88dd001e">begin</a>())->getType()))</div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> </div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>   <span class="comment">// Otherwise make sure this is an action clang understands.</span></div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>   <span class="keywordflow">if</span> (!isa<PreprocessJobAction>(JA) && !isa<PrecompileJobAction>(JA) &&</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>       !isa<CompileJobAction>(JA))</div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span> </div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> }</div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> <span class="comment"></span></div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span> <span class="comment">/// GetReleaseVersion - Parse (([0-9]+)(.([0-9]+)(.([0-9]+)?))?)? and return the</span></div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span> <span class="comment">/// grouped values as integers. Numbers which are not provided are set to 0.</span></div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> <span class="comment">/// \return True if the entire string was parsed (9.2), or all groups were</span></div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span> <span class="comment">/// parsed (10.3.5extrastuff).</span></div>
+<div class="line"><a name="l02011"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a3be0a82bd76c8c45e576e3b0c7ba7bac"> 2011</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a3be0a82bd76c8c45e576e3b0c7ba7bac">Driver::GetReleaseVersion</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Str, <span class="keywordtype">unsigned</span> &Major,</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>                                <span class="keywordtype">unsigned</span> &Minor, <span class="keywordtype">unsigned</span> &Micro,</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>                                <span class="keywordtype">bool</span> &HadExtra) {</div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>   HadExtra = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> </div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>   Major = Minor = Micro = 0;</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>   <span class="keywordflow">if</span> (*Str == <span class="charliteral">'\0'</span>)</div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span> </div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>   <span class="keywordtype">char</span> *End;</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>   Major = (<a class="code" href="classunsigned.html">unsigned</a>) strtol(Str, &End, 10);</div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>   <span class="keywordflow">if</span> (*Str != <span class="charliteral">'\0'</span> && *End == <span class="charliteral">'\0'</span>)</div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>   <span class="keywordflow">if</span> (*End != <span class="charliteral">'.'</span>)</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> </div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>   Str = End+1;</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>   Minor = (<a class="code" href="classunsigned.html">unsigned</a>) strtol(Str, &End, 10);</div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>   <span class="keywordflow">if</span> (*Str != <span class="charliteral">'\0'</span> && *End == <span class="charliteral">'\0'</span>)</div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>   <span class="keywordflow">if</span> (*End != <span class="charliteral">'.'</span>)</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> </div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>   Str = End+1;</div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>   Micro = (<a class="code" href="classunsigned.html">unsigned</a>) strtol(Str, &End, 10);</div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>   <span class="keywordflow">if</span> (*Str != <span class="charliteral">'\0'</span> && *End == <span class="charliteral">'\0'</span>)</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>   <span class="keywordflow">if</span> (Str == End)</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>   HadExtra = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> }</div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> </div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> std::pair<unsigned, unsigned> Driver::getIncludeExcludeOptionFlagMasks()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>   <span class="keywordtype">unsigned</span> IncludedFlagsBitmask = 0;</div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>   <span class="keywordtype">unsigned</span> ExcludedFlagsBitmask = <a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2a56267cfb98f46f1eea43b97c1a0015f9">options::NoDriverOption</a>;</div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span> </div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>   <span class="keywordflow">if</span> (Mode == CLMode) {</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>     <span class="comment">// Include CL and Core options.</span></div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>     IncludedFlagsBitmask |= <a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2a2f3483dc60d1d7723637490a28aa6c88">options::CLOption</a>;</div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>     IncludedFlagsBitmask |= <a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2a16c68ac9af180814fcce2bb4de5beb11">options::CoreOption</a>;</div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>     ExcludedFlagsBitmask |= <a class="code" href="namespaceclang_1_1driver_1_1options.html#a282a4be3871bbc7ffb8d1267a6fe41a2a2f3483dc60d1d7723637490a28aa6c88">options::CLOption</a>;</div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>   }</div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> </div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>   <span class="keywordflow">return</span> std::make_pair(IncludedFlagsBitmask, ExcludedFlagsBitmask);</div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> }</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> </div>
+<div class="line"><a name="l02059"></a><span class="lineno"><a class="code" href="namespaceclang_1_1driver.html#a6afaa5a5585c80299a8a5a9d914dad4d"> 2059</a></span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1driver.html#a6afaa5a5585c80299a8a5a9d914dad4d">clang::driver::isOptimizationLevelFast</a>(<span class="keyword">const</span> llvm::opt::ArgList &Args) {</div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>   <span class="keywordflow">return</span> Args.hasFlag(options::OPT_Ofast, options::OPT_O_Group, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/Driver_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,284 @@
+<!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: Driver.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_79a4e43f5883e96ea4f45c2e67339e2c.html">Driver</a></li><li class="navelem"><a class="el" href="dir_7586acc61ec3e12e4bc52d53567f5268.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Driver.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Driver_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/Driver/Release+Asserts/Driver.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Driver/Release+Asserts/Driver.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  Driver.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Driver.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.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/DenseMap.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Phases.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.def \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Util.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/Support/Path.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h InputInfo.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/Option/Arg.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Option/Option.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/Option/OptTable.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h ToolChains.h \
+ Tools.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Tool.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/ToolChain.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/Version.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/Version.inc \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Compilation.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Job.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/DriverDiagnostic.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticDriverKinds.inc \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.inc \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/include/llvm/Option/ArgList.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/Support/Debug.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/Program.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Config/config.h</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Driver.h:</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</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> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</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> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</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> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</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> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</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> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</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> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Phases.h:</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.h:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.def:</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Util.h:</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> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</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> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</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> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</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> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</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> /home/tstellar/llvm/include/llvm/Support/Path.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> InputInfo.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/include/llvm/Option/Arg.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/include/llvm/Option/Option.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/include/llvm/Option/OptTable.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/include/llvm/ADT/StringSet.h:</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/include/llvm/Option/OptSpecifier.h:</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> ToolChains.h:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> Tools.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/Driver/../../include/clang/Driver/Tool.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/Driver/../../include/clang/Basic/VersionTuple.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/ADT/Optional.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/ToolChain.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/Version.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/tools/clang/lib/Driver/../../include/clang/Basic/Version.inc:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Compilation.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/tools/clang/lib/Driver/../../include/clang/Driver/Job.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/DriverDiagnostic.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticDriverKinds.inc:</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.inc:</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/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.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/Option/ArgList.h:</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> /home/tstellar/llvm/include/llvm/Support/Debug.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/raw_ostream.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/Support/FileSystem.h:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> /home/tstellar/llvm/include/llvm/Support/Program.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/Driver/../../include/clang/Config/config.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/Driver_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Driver_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,504 @@
+<!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: Driver.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_21b2f75600cfba94559a3417605488ac.html">Driver</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Driver.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Driver_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">//===--- Driver.h - Clang GCC Compatible Driver -----------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#ifndef CLANG_DRIVER_DRIVER_H_</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor"></span><span class="preprocessor">#define CLANG_DRIVER_DRIVER_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="Diagnostic_8h.html" title="Defines the Diagnostic-related interfaces.">clang/Basic/Diagnostic.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="LLVM_8h.html" title="Forward declares and imports various common LLVM datatypes that clang wants to use unqualified...">clang/Basic/LLVM.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="Phases_8h.html">clang/Driver/Phases.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="Types_8h.html">clang/Driver/Types.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="Util_8h.html">clang/Driver/Util.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/ADT/StringMap.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/Triple.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/Support/Path.h"</span> <span class="comment">// FIXME: Kill when CompilationInfo</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>                               <span class="comment">// lands.</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include <list></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include <set></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">namespace </span>opt {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>   <span class="keyword">class </span>Arg;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="keyword">class </span>ArgList;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>   <span class="keyword">class </span>DerivedArgList;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   <span class="keyword">class </span>InputArgList;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>   <span class="keyword">class </span>OptTable;</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">namespace </span>driver {</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="keyword">class </span><a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="keyword">class </span>Command;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   <span class="keyword">class </span>Compilation;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <span class="keyword">class </span>InputInfo;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   <span class="keyword">class </span>JobAction;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>   <span class="keyword">class </span>SanitizerArgs;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   <span class="keyword">class </span>ToolChain;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment"></span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">/// Driver - Encapsulate logic for constructing compilation processes</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">/// from a set of gcc-driver-like command line arguments.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html">   51</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1Driver.html">Driver</a> {</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   llvm::opt::OptTable *Opts;</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>   <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="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   <span class="keyword">enum</span> DriverMode {</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>     GCCMode,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>     GXXMode,</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>     CPPMode,</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>     CLMode</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   } Mode;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> </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">   64</span>   <span class="comment">// Diag - Forwarding function for diagnostics.</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">   65</a></span>   <a class="code" href="classclang_1_1DiagnosticBuilder.html" title="A little helper class used to produce diagnostics.">DiagnosticBuilder</a> <a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(<span class="keywordtype">unsigned</span> DiagID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     <span class="keywordflow">return</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(DiagID);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   }</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <span class="comment">// FIXME: Privatize once interface is stable.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">  /// The name the driver was invoked as.</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1">   72</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  /// The path the driver executable was in, as invoked from the</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">  /// command line.</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#ac2e921652102bc5ebed73ac600f1e63c">   76</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#ac2e921652102bc5ebed73ac600f1e63c">Dir</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment"></span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">  /// The original path to the clang executable.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a7bfdef8c1b674e235db09e1d452bacc7">   79</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a7bfdef8c1b674e235db09e1d452bacc7" title="The original path to the clang executable.">ClangExecutable</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment"></span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">  /// The path to the installed clang directory, if any.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a9e66cf1b3649ed55d9dcf1663b351c0f">   82</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e66cf1b3649ed55d9dcf1663b351c0f" title="The path to the installed clang directory, if any.">InstalledDir</a>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment"></span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">  /// The path to the compiler resource directory.</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#ab6e86cc00f556e22bb9f89d07bfcc065">   85</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#ab6e86cc00f556e22bb9f89d07bfcc065" title="The path to the compiler resource directory.">ResourceDir</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">  /// A prefix directory used to emulated a limited subset of GCC's '-Bprefix'</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">  /// functionality.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">  /// FIXME: This type of customization should be removed in favor of the</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">  /// universal driver when it is ready.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a8bbe3164aa8c72bd7c6c87ca2a938653">   91</a></span> <span class="comment"></span>  <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::string, 4></a> <a class="code" href="classclang_1_1driver_1_1Driver.html#a8bbe3164aa8c72bd7c6c87ca2a938653">prefix_list</a>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#ade69d44e010fa1943fab5f2a16c815a1">   92</a></span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a8bbe3164aa8c72bd7c6c87ca2a938653">prefix_list</a> <a class="code" href="classclang_1_1driver_1_1Driver.html#ade69d44e010fa1943fab5f2a16c815a1">PrefixDirs</a>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment"></span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">  /// sysroot, if present</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a0339340ab6987b95840159f00852e733">   95</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a0339340ab6987b95840159f00852e733" title="sysroot, if present">SysRoot</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment"></span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">  /// Dynamic loader prefix, if present</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a4a13aa0c79b4a288810f86b296f9f12b">   98</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a4a13aa0c79b4a288810f86b296f9f12b" title="Dynamic loader prefix, if present.">DyldPrefix</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment"></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">  /// If the standard library is used</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#acdff41a97d252bd454794f64ad26c4aa">  101</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#acdff41a97d252bd454794f64ad26c4aa" title="If the standard library is used.">UseStdLib</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">  /// Default target triple.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#afc30d904f7d861095e669518ae56ebca">  104</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#afc30d904f7d861095e669518ae56ebca" title="Default target triple.">DefaultTargetTriple</a>;</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">  /// Default name for linked images (e.g., "a.out").</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a3804bda66eb8c51a5039138cb1efd73a">  107</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a3804bda66eb8c51a5039138cb1efd73a" title="Default name for linked images (e.g., "a.out").">DefaultImageName</a>;</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">  /// Driver title to use with help.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a4e291543c5ee6c941a07ba10fe2a05fa">  110</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a4e291543c5ee6c941a07ba10fe2a05fa" title="Driver title to use with help.">DriverTitle</a>;</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">  /// Information about the host which can be overridden by the user.</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#af9952e39a406e3ca2a99d3e511e83ef5">  113</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#acc69c1d277cf92fa854e8ae40188c8b9" title="Information about the host which can be overridden by the user.">HostBits</a>, <a class="code" href="classclang_1_1driver_1_1Driver.html#aec0a7723dc85fc8591460bae51fce970">HostMachine</a>, <a class="code" href="classclang_1_1driver_1_1Driver.html#af9952e39a406e3ca2a99d3e511e83ef5">HostSystem</a>, <a class="code" href="classclang_1_1driver_1_1Driver.html#a0b241dfd6d00d878d020c5f85f6bb226">HostRelease</a>;</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">  /// The file to log CC_PRINT_OPTIONS output to, if enabled.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a4ca0b34f9610a296c803f10d4c958ebb">  116</a></span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a4ca0b34f9610a296c803f10d4c958ebb" title="The file to log CC_PRINT_OPTIONS output to, if enabled.">CCPrintOptionsFilename</a>;</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">  /// The file to log CC_PRINT_HEADERS output to, if enabled.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a58dc0185ba41f232a7c24e0c6e7a4e93">  119</a></span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a58dc0185ba41f232a7c24e0c6e7a4e93" title="The file to log CC_PRINT_HEADERS output to, if enabled.">CCPrintHeadersFilename</a>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment"></span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">  /// The file to log CC_LOG_DIAGNOSTICS output to, if enabled.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a8a51cbec8fa275344f19a7e3d4dbaba1">  122</a></span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a8a51cbec8fa275344f19a7e3d4dbaba1" title="The file to log CC_LOG_DIAGNOSTICS output to, if enabled.">CCLogDiagnosticsFilename</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">  /// A list of inputs and their types for the given arguments.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment"></span>  <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::pair<types::ID, const llvm::opt::Arg *></a>, 16></div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a41d088c4353725a18c3d2578b1a4bdf6">  126</a></span>       <a class="code" href="classclang_1_1driver_1_1Driver.html#a41d088c4353725a18c3d2578b1a4bdf6" title="A list of inputs and their types for the given arguments.">InputList</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment"></span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">  /// Whether the driver should follow g++ like behavior.</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a2c8ab069d9dc51d10e23153d36c9495b">  129</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a2c8ab069d9dc51d10e23153d36c9495b" title="Whether the driver should follow g++ like behavior.">CCCIsCXX</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Mode == GXXMode; }</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment"></span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">  /// Whether the driver is just the preprocessor.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a515bd8fef2b4a0e0fb2ad32b990383d8">  132</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a515bd8fef2b4a0e0fb2ad32b990383d8" title="Whether the driver is just the preprocessor.">CCCIsCPP</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Mode == CPPMode; }</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment"></span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">  /// Whether the driver should follow cl.exe like behavior.</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a8bf0fba5eeeecd369faa9fe70af373f8">  135</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a8bf0fba5eeeecd369faa9fe70af373f8" title="Whether the driver should follow cl.exe like behavior.">IsCLMode</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Mode == CLMode; }</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment"></span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">  /// Only print tool bindings, don't build any jobs.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a5040400b3d6bec2e8d1942bca7a9c5ca">  138</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a5040400b3d6bec2e8d1942bca7a9c5ca" title="Only print tool bindings, don't build any jobs.">CCCPrintBindings</a> : 1;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment"></span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">  /// Set CC_PRINT_OPTIONS mode, which is like -v but logs the commands to</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">  /// CCPrintOptionsFilename or to stderr.</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#aba317037508ba70c22ce28cca14502a8">  142</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#aba317037508ba70c22ce28cca14502a8">CCPrintOptions</a> : 1;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment"></span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">  /// Set CC_PRINT_HEADERS mode, which causes the frontend to log header include</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">  /// information to CCPrintHeadersFilename or to stderr.</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a00ee375ba821a3678e2484ef9347eea0">  146</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a00ee375ba821a3678e2484ef9347eea0">CCPrintHeaders</a> : 1;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment"></span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">  /// Set CC_LOG_DIAGNOSTICS mode, which causes the frontend to log diagnostics</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">  /// to CCLogDiagnosticsFilename or to stderr, in a stable machine readable</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">  /// format.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a506533f15f96c4c7ec4b66d4ca2023cb">  151</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a506533f15f96c4c7ec4b66d4ca2023cb">CCLogDiagnostics</a> : 1;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment"></span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">  /// Whether the driver is generating diagnostics for debugging purposes.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a58be750f07387f656ee77c8122697c06">  154</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a58be750f07387f656ee77c8122697c06" title="Whether the driver is generating diagnostics for debugging purposes.">CCGenDiagnostics</a> : 1;</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="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">  /// Name to use when invoking gcc/g++.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment"></span>  std::string CCCGenericGCCName;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment"></span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">  /// Whether to check that input files exist when constructing compilation</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">  /// jobs.</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> CheckInputsExist : 1;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">  /// Use lazy precompiled headers for PCH support.</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a1fff038c7aef9dded7189b13122f8ad2">  166</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a1fff038c7aef9dded7189b13122f8ad2" title="Use lazy precompiled headers for PCH support.">CCCUsePCH</a> : 1;</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="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">  /// Certain options suppress the 'no input files' warning.</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment"></span>  <span class="keywordtype">bool</span> SuppressMissingInputWarning : 1;</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>   std::list<std::string> TempFiles;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   std::list<std::string> ResultFiles;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment"></span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">  /// \brief Cache of all the ToolChains in use by the driver.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">  /// This maps from the string representation of a triple to a ToolChain</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">  /// created targeting that triple. The driver owns all the ToolChain objects</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">  /// stored in it, and will clean them up when torn down.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment"></span>  <span class="keyword">mutable</span> llvm::StringMap<ToolChain *> ToolChains;</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> <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">  /// TranslateInputArgs - Create a new derived argument list from the input</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">  /// arguments, after applying the standard argument translations.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment"></span>  llvm::opt::DerivedArgList *</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>   TranslateInputArgs(<span class="keyword">const</span> llvm::opt::InputArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>   <span class="comment">// getFinalPhase - Determine which compilation mode we are in and record </span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   <span class="comment">// which option we used to determine the final phase.</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8">phases::ID</a> getFinalPhase(<span class="keyword">const</span> llvm::opt::DerivedArgList &DAL,</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>                            llvm::opt::Arg **FinalPhaseArg = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#a7163378e946981543be6df0fd4016bcc">Driver</a>(StringRef _ClangExecutable,</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>          StringRef _DefaultTargetTriple,</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>          StringRef _DefaultImageName,</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</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="l00198"></a><span class="lineno">  198</span>   <a class="code" href="classclang_1_1driver_1_1Driver.html#ac7645eea8d3ce2bc39ddbda5e840297a">~Driver</a>();</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment"></span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">  /// @name Accessors</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">  /// @{</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">  /// Name to use when invoking gcc/g++.</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#ab4f75a8f2aa6d6cc90144130484b3839">  204</a></span> <span class="comment"></span>  <span class="keyword">const</span> std::string &<a class="code" href="classclang_1_1driver_1_1Driver.html#ab4f75a8f2aa6d6cc90144130484b3839" title="Name to use when invoking gcc/g++.">getCCCGenericGCCName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CCCGenericGCCName; }</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#adb951221317e3bec4b66897fac2625db">  206</a></span>   <span class="keyword">const</span> llvm::opt::OptTable &<a class="code" href="classclang_1_1driver_1_1Driver.html#adb951221317e3bec4b66897fac2625db">getOpts</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *Opts; }</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a30e562979fc12990768dbe70230e6703">  208</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &<a class="code" href="classclang_1_1driver_1_1Driver.html#a30e562979fc12990768dbe70230e6703">getDiags</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Diags; }</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a184c5f81a4ee88a72edd47f797b234ab">  210</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a184c5f81a4ee88a72edd47f797b234ab">getCheckInputsExist</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CheckInputsExist; }</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a2610a7aa5de2b7a82daf22e40ab25e50">  212</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a2610a7aa5de2b7a82daf22e40ab25e50">setCheckInputsExist</a>(<span class="keywordtype">bool</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) { CheckInputsExist = <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"><a class="code" href="classclang_1_1driver_1_1Driver.html#a74405ae0a9565fc48d7f98574d1be887">  214</a></span>   <span class="keyword">const</span> std::string &<a class="code" href="classclang_1_1driver_1_1Driver.html#a74405ae0a9565fc48d7f98574d1be887">getTitle</a>() { <span class="keywordflow">return</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a4e291543c5ee6c941a07ba10fe2a05fa" title="Driver title to use with help.">DriverTitle</a>; }</div>
+<div class="line"><a name="l00215"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#adb25e5647ba81f42e9f722f55e726624">  215</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#adb25e5647ba81f42e9f722f55e726624">setTitle</a>(std::string <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) { <a class="code" href="classclang_1_1driver_1_1Driver.html#a4e291543c5ee6c941a07ba10fe2a05fa" title="Driver title to use with help.">DriverTitle</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>; }</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment"></span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">  /// \brief Get the path to the main clang executable.</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a6c4152e0fed0c3a6fbe624089e922bd2">  218</a></span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a6c4152e0fed0c3a6fbe624089e922bd2" title="Get the path to the main clang executable.">getClangProgramPath</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a7bfdef8c1b674e235db09e1d452bacc7" title="The original path to the clang executable.">ClangExecutable</a>.c_str();</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   }</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment"></span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">  /// \brief Get the path to where the clang executable was installed.</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a839a7a130266077d738ce02c1dd44701">  223</a></span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a839a7a130266077d738ce02c1dd44701" title="Get the path to where the clang executable was installed.">getInstalledDir</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1driver_1_1Driver.html#a9e66cf1b3649ed55d9dcf1663b351c0f" title="The path to the installed clang directory, if any.">InstalledDir</a>.empty())</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e66cf1b3649ed55d9dcf1663b351c0f" title="The path to the installed clang directory, if any.">InstalledDir</a>.c_str();</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#ac2e921652102bc5ebed73ac600f1e63c">Dir</a>.c_str();</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   }</div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Driver.html#a4f3aab4e84cd2e89c078d137b0cd9f17">  228</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a4f3aab4e84cd2e89c078d137b0cd9f17">setInstalledDir</a>(StringRef <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e66cf1b3649ed55d9dcf1663b351c0f" title="The path to the installed clang directory, if any.">InstalledDir</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   }</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment"></span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">  /// @}</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">  /// @name Primary Functionality</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">  /// @{</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">  /// BuildCompilation - Construct a compilation object for a command</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">  /// line argument vector.</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">  /// \return A compilation, or 0 if none was built for the given</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment">  /// argument vector. A null return value does not necessarily</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">  /// indicate an error condition, the diagnostics should be queried</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">  /// to determine if an error occurred.</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment"></span>  <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> *<a class="code" href="classclang_1_1driver_1_1Driver.html#ae0652bc49299a5f4cfec664351a5c76b">BuildCompilation</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const char *></a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment"></span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">  /// @name Driver Steps</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">  /// @{</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment">  /// ParseDriverMode - Look for and handle the driver mode option in Args.</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#aae406dd01e7c7985fe55fed70155ab7d" title="ParseDriverMode - Look for and handle the driver mode option in Args.">ParseDriverMode</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const char *></a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment"></span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">  /// ParseArgStrings - Parse the given list of strings into an</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">  /// ArgList.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment"></span>  llvm::opt::InputArgList *<a class="code" href="classclang_1_1driver_1_1Driver.html#a32cdbd9e9abbcd0ad6b651f5cecb8a5b">ParseArgStrings</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const char *></a> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment"></span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">  /// BuildInputs - Construct the list of inputs and their types from </span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">  /// the given arguments.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">  /// \param TC - The default host tool chain.</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">  /// \param Args - The input arguments.</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">  /// \param Inputs - The list to store the resulting compilation </span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">  /// inputs onto.</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a22d38907b7c116194395a3079bad83c5">BuildInputs</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC, <span class="keyword">const</span> llvm::opt::DerivedArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>                    <a class="code" href="classclang_1_1driver_1_1Driver.html#a41d088c4353725a18c3d2578b1a4bdf6" title="A list of inputs and their types for the given arguments.">InputList</a> &Inputs) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment"></span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">  /// BuildActions - Construct the list of actions to perform for the</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">  /// given arguments, which are only done for a single architecture.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">  /// \param TC - The default host tool chain.</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">  /// \param Args - The input arguments.</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">  /// \param Actions - The list to store the resulting actions onto.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a9e7d80a95d9d355d911720b9fbd36de8">BuildActions</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC, llvm::opt::DerivedArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>                     <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a41d088c4353725a18c3d2578b1a4bdf6" title="A list of inputs and their types for the given arguments.">InputList</a> &Inputs, <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Actions) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment"></span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">  /// BuildUniversalActions - Construct the list of actions to perform</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">  /// for the given arguments, which may require a universal build.</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">  /// \param TC - The default host tool chain.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">  /// \param Args - The input arguments.</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">  /// \param Actions - The list to store the resulting actions onto.</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a5b9fda47c5f38f90da0c85651a4c5056">BuildUniversalActions</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC,</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>                              llvm::opt::DerivedArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>                              <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a41d088c4353725a18c3d2578b1a4bdf6" title="A list of inputs and their types for the given arguments.">InputList</a> &BAInputs,</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>                              <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Actions) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment"></span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">  /// BuildJobs - Bind actions to concrete tools and translate</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">  /// arguments to form the list of jobs to run.</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">  /// \param C - The compilation that is being built.</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a6832f75eb8b22ccac04e7fda869daf9c">BuildJobs</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment"></span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">  /// ExecuteCompilation - Execute the compilation according to the command line</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">  /// arguments and return an appropriate exit code.</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">  /// This routine handles additional processing that must be done in addition</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">  /// to just running the subprocesses, for example reporting errors, removing</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">  /// temporary files, etc.</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment"></span>  <span class="keywordtype">int</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a68a340c41cdf7bce18838694e86f51e5">ExecuteCompilation</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C,</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>      <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a>< std::pair<int, const Command *> > &FailingCommands) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">  /// generateCompilationDiagnostics - Generate diagnostics information </span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">  /// including preprocessed source file(s).</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">  /// </span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#ab0282b32f9178544df50c3c26a109c8d">generateCompilationDiagnostics</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C,</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *FailingCommand);</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment"></span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">  /// @}</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">  /// @name Helper Methods</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">  /// @{</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">  /// PrintActions - Print the list of actions.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a27477093014fcbbc5fca00e5478263d7" title="PrintActions - Print the list of actions.">PrintActions</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment"></span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">  /// PrintHelp - Print the help text.</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">  /// \param ShowHidden - Show hidden options.</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a74a1fb74fb2ded5e6dbd3d18916d89a4">PrintHelp</a>(<span class="keywordtype">bool</span> ShowHidden) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment"></span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment">  /// PrintVersion - Print the driver version.</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a902e9ba4ff93f701ab241baa3bf9f213" title="PrintVersion - Print the driver version.">PrintVersion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C, raw_ostream &OS) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment"></span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">  /// GetFilePath - Lookup \p Name in the list of file search paths.</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">  /// \param TC - The tool chain for additional information on</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> <span class="comment">  /// directories to search.</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment"></span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>   <span class="comment">// FIXME: This should be in CompilationInfo.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>   std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a0149be428cc7aad47825743369e6d9f9">GetFilePath</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment"></span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">  /// GetProgramPath - Lookup \p Name in the list of program search paths.</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">  /// \param TC - The provided tool chain for additional information on</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">  /// directories to search.</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment"></span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   <span class="comment">// FIXME: This should be in CompilationInfo.</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>   std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#a906f4866c7d598e6a5a676c9a8ccf942">GetProgramPath</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a6e3333f37f2090635452f543e03f85f1" title="The name the driver was invoked as.">Name</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &TC) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment"></span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">  /// HandleImmediateArgs - Handle any arguments which should be</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">  /// treated before building actions or binding tools.</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">  /// \return Whether any compilation should be built for this</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">  /// invocation.</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a95e49e33e310f306e86fee24da3b2a9f">HandleImmediateArgs</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C);</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment"></span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">  /// ConstructAction - Construct the appropriate action to do for</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">  /// \p Phase on the \p Input, taking in to account arguments</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">  /// like -fsyntax-only or --analyze.</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment"></span>  <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="classclang_1_1driver_1_1Driver.html#a0246b1ea3f7aa3145bcf9c75d81ac0a9">ConstructPhaseAction</a>(<span class="keyword">const</span> llvm::opt::ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>, <a class="code" href="namespaceclang_1_1driver_1_1phases.html#adb42b09b78474fb2552b7eb9d7e3c7e8">phases::ID</a> Phase,</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>                                <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment"></span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment">  /// BuildJobsForAction - Construct the jobs to perform for the</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">  /// action \p A.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a303a8e37343872a33de7fccd51f9cd86">BuildJobsForAction</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C,</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>                           <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A,</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>                           <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> *TC,</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>                           <span class="keyword">const</span> <span class="keywordtype">char</span> *BoundArch,</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>                           <span class="keywordtype">bool</span> AtTopLevel,</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>                           <span class="keywordtype">bool</span> MultipleArchs,</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>                           <span class="keyword">const</span> <span class="keywordtype">char</span> *LinkingOutput,</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>                           <a class="code" href="classclang_1_1driver_1_1InputInfo.html" title="InputInfo - Wrapper for information about an input source.">InputInfo</a> &Result) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment"></span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">  /// GetNamedOutputPath - Return the name to use for the output of</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">  /// the action \p JA. The result is appended to the compilation's</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">  /// list of temporary or result files, as appropriate.</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">  /// \param C - The compilation.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">  /// \param JA - The action of interest.</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">  /// \param BaseInput - The original input file that this action was</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">  /// triggered by.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">  /// \param BoundArch - The bound architecture. </span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">  /// \param AtTopLevel - Whether this is a "top-level" action.</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">  /// \param MultipleArchs - Whether multiple -arch options were supplied.</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Driver.html#ad58c6df460f2b68c1d8369b6ccbca902">GetNamedOutputPath</a>(<a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> &C,</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>                                  <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> &JA,</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *BaseInput,</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *BoundArch,</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>                                  <span class="keywordtype">bool</span> AtTopLevel,</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>                                  <span class="keywordtype">bool</span> MultipleArchs) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment"></span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment">  /// GetTemporaryPath - Return the pathname of a temporary file to use </span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment">  /// as part of compilation; the file will have the given prefix and suffix.</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment">  /// GCC goes to extra lengths here to be a bit more robust.</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1driver_1_1Driver.html#abc30f9d77ac6910b45e52d239a49f320">GetTemporaryPath</a>(StringRef Prefix, <span class="keyword">const</span> <span class="keywordtype">char</span> *Suffix) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment"></span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">  /// ShouldUseClangCompiler - Should the clang compiler be used to</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">  /// handle this action.</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a6b4bc106db6e7ef296ff890fbcb3ea67">ShouldUseClangCompiler</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> &JA) <span class="keyword">const</span>;</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>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a231caa910a84a6657df00965246c8b8a">IsUsingLTO</a>(<span class="keyword">const</span> llvm::opt::ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">  /// \brief Retrieves a ToolChain for a particular target triple.</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">  /// Will cache ToolChains for the life of the driver object, and create them</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment">  /// on-demand.</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1ToolChain.html" title="ToolChain - Access to tools for a single platform.">ToolChain</a> &getToolChain(<span class="keyword">const</span> llvm::opt::ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>                                 StringRef DarwinArchName = <span class="stringliteral">""</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment"></span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">  /// @}</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">  /// \brief Get bitmasks for which option flags to include and exclude based on</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">  /// the driver mode.</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment"></span>  std::pair<unsigned, unsigned> getIncludeExcludeOptionFlagMasks() <span class="keyword">const</span>;</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> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">  /// GetReleaseVersion - Parse (([0-9]+)(.([0-9]+)(.([0-9]+)?))?)? and</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">  /// return the grouped values as integers. Numbers which are not</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">  /// provided are set to 0.</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment">  /// \return True if the entire string was parsed (9.2), or all</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment">  /// groups were parsed (10.3.5extrastuff). HadExtra is true if all</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment">  /// groups were parsed but extra characters remain at the end.</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Driver.html#a3be0a82bd76c8c45e576e3b0c7ba7bac">GetReleaseVersion</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Str, <span class="keywordtype">unsigned</span> &Major,</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>                                 <span class="keywordtype">unsigned</span> &Minor, <span class="keywordtype">unsigned</span> &Micro,</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>                                 <span class="keywordtype">bool</span> &HadExtra);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">/// \return True if the last defined optimization level is -Ofast.</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">/// And False otherwise.</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1driver.html#a6afaa5a5585c80299a8a5a9d914dad4d">isOptimizationLevelFast</a>(<span class="keyword">const</span> llvm::opt::ArgList &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> } <span class="comment">// end namespace driver</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> } <span class="comment">// end namespace clang</span></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> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/DumpXML_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DumpXML_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DumpXML_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DumpXML_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,466 @@
+<!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: DumpXML.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_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li><li class="navelem"><a class="el" href="dir_e796beea07674cb14e7827e2d3a82e85.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">DumpXML.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="DumpXML_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/AST/Release+Asserts/DumpXML.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/DumpXML.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  DumpXML.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../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="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../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="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/LambdaMangleContext.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RecursiveASTVisitor.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclFriend.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclTemplate.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../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="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclOpenMP.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtCXX.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtObjC.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclVisitor.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtVisitor.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLocVisitor.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeVisitor.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTTypeTraits.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/AST/../../include/clang/AST/Decl.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/AST/../../include/clang/AST/APValue.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/tools/clang/lib/AST/../../include/clang/Basic/LLVM.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/Casting.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/type_traits.h:</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> /home/tstellar/llvm/include/llvm/ADT/APInt.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/ArrayRef.h:</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.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/Support/SwapByteOrder.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/APSInt.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/PointerIntPair.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/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.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/AST/../../include/clang/AST/AttrIterator.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/AST/../../include/clang/AST/DeclarationName.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/AST/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.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/AST/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.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/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.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/AST/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/AST/../../include/clang/Basic/DiagnosticOptions.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/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def:</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/AST/../../include/clang/Basic/SourceLocation.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/DenseMap.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/DenseMapInfo.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/OwningPtr.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.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/AST/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.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/AST/../../include/clang/AST/DeclNodes.inc:</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/AST/../../include/clang/AST/ExternalASTSource.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/tools/clang/lib/AST/../../include/clang/AST/CharUnits.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/AST/../../include/clang/AST/Redeclarable.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/AST/../../include/clang/AST/Type.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/AST/../../include/clang/AST/NestedNameSpecifier.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/include/llvm/ADT/FoldingSet.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/AST/../../include/clang/AST/TemplateName.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/AST/../../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="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/AST/../../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="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/AST/../../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="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/ADT/Optional.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/Twine.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/Support/ErrorHandling.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/AST/../../include/clang/AST/TypeNodes.def:</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/AST/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.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/AST/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLoc.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/AST/../../include/clang/AST/TemplateBase.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/AST/../../include/clang/AST/TypeLocNodes.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/AST/../../include/clang/AST/CanonicalType.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/AST/../../include/clang/AST/CommentCommandTraits.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/AST/../../include/clang/Basic/CommentOptions.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/AST/../../include/clang/AST/CommentCommandList.inc:</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/AST/../../include/clang/AST/LambdaMangleContext.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/AST/../../include/clang/AST/PrettyPrinter.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/AST/../../include/clang/Basic/LangOptions.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/AST/../../include/clang/Basic/ObjCRuntime.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/AST/../../include/clang/Basic/VersionTuple.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/Triple.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/AST/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.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/AST/../../include/clang/Basic/OpenCLExtensions.def:</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/AST/../../include/clang/AST/RawCommentList.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/AST/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileManager.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/AST/../../include/clang/Basic/FileSystemOptions.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/DenseSet.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/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.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-c/Core.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/tools/clang/lib/AST/../../include/clang/AST/RecursiveASTVisitor.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/AST/../../include/clang/AST/DeclCXX.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/AST/../../include/clang/AST/ASTUnresolvedSet.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/AST/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/UnresolvedSet.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/AST/../../include/clang/AST/DeclAccessPair.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/AST/../../include/clang/AST/Expr.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/AST/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CharInfo.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/AST/../../include/clang/Basic/TypeTraits.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/AST/../../include/clang/Basic/Builtins.def:</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/AST/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ExpressionTraits.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/AST/../../include/clang/Basic/Lambda.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/SmallPtrSet.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/AST/../../include/clang/AST/DeclFriend.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/AST/../../include/clang/AST/DeclTemplate.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/AST/../../include/clang/AST/DeclObjC.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/AST/../../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="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/AST/../../include/clang/AST/DeclOpenMP.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/AST/../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtCXX.h:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtObjC.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.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/AST/../../include/clang/AST/Attr.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/AST/../../include/clang/Basic/AttrKinds.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/AST/../../include/clang/Basic/AttrList.inc:</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/ADT/StringSwitch.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/raw_ostream.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/AST/../../include/clang/AST/Attrs.inc:</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/AST/../../include/clang/AST/DeclVisitor.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/AST/../../include/clang/AST/StmtVisitor.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/AST/../../include/clang/AST/TypeLocVisitor.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/AST/../../include/clang/AST/TypeVisitor.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/include/llvm/ADT/SmallString.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/DynamicTypeInfo_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypeInfo_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypeInfo_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypeInfo_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,131 @@
+<!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: DynamicTypeInfo.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">DynamicTypeInfo.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="DynamicTypeInfo_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">//== DynamicTypeInfo.h - Runtime type information ----------------*- 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="preprocessor">#ifndef LLVM_CLANG_SA_CORE_DYNAMICTYPEINFO_H</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_SA_CORE_DYNAMICTYPEINFO_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include "<a class="code" href="Type_8h.html">clang/AST/Type.h</a>"</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="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="keyword">namespace </span>ento {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment">/// \brief Stores the currently inferred strictest bound on the runtime type</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="comment">/// of a region in a given state along the analysis path.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html">   19</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html" title="Stores the currently inferred strictest bound on the runtime type of a region in a given state along ...">DynamicTypeInfo</a> {</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> T;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>   <span class="keywordtype">bool</span> CanBeASubClass;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#ab7c4d5caef7796f705f5de9ecc2464a1">   26</a></span>   <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#ab7c4d5caef7796f705f5de9ecc2464a1">DynamicTypeInfo</a>() : T(<a class="code" href="classclang_1_1QualType.html">QualType</a>()) {}</div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a097fd9d50a038d6d1faf2caf4e27a35e">   27</a></span>   <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#ab7c4d5caef7796f705f5de9ecc2464a1">DynamicTypeInfo</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> WithType, <span class="keywordtype">bool</span> CanBeSub = <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>     : T(WithType), CanBeASubClass(CanBeSub) {}</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment"></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">  /// \brief Return false if no dynamic type info is available.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a5b12c90d43035775c68a631ddc556d39">   31</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a5b12c90d43035775c68a631ddc556d39" title="Return false if no dynamic type info is available.">isValid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !T.<a class="code" href="classclang_1_1QualType.html#a8f87f58000490ad01cd09add1f27d7ac" title="isNull - Return true if this QualType doesn't point to a type yet.">isNull</a>(); }</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment"></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">  /// \brief Returns the currently inferred upper bound on the runtime type.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a7b323c6e7d0aaa552460f2bfc321c6cb">   34</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a7b323c6e7d0aaa552460f2bfc321c6cb" title="Returns the currently inferred upper bound on the runtime type.">getType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> T; }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment"></span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">  /// \brief Returns false if the type information is precise (the type T is</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">  /// the only type in the lattice), true otherwise.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a5dfd870c29d25ec8aa8fd6c942fd524a">   38</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a5dfd870c29d25ec8aa8fd6c942fd524a" title="Returns false if the type information is precise (the type T is the only type in the lattice)...">canBeASubClass</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CanBeASubClass; }</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a5303624afc1efe96db87a8f11679955e">   40</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a5303624afc1efe96db87a8f11679955e">Profile</a>(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>     ID.Add(T);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>     ID.AddInteger((<span class="keywordtype">unsigned</span>)CanBeASubClass);</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_1ento_1_1DynamicTypeInfo.html#a9d0058b4e6744cbd1a5f271c64f4d034">   44</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html#a9d0058b4e6744cbd1a5f271c64f4d034">operator==</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html" title="Stores the currently inferred strictest bound on the runtime type of a region in a given state along ...">DynamicTypeInfo</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>     <span class="keywordflow">return</span> T == X.T && CanBeASubClass == X.CanBeASubClass;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>   }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> };</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">// end ento</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> } <span class="comment">// end clang</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/DynamicTypePropagation_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypePropagation_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypePropagation_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypePropagation_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,360 @@
+<!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: DynamicTypePropagation.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">DynamicTypePropagation.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="DynamicTypePropagation_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">//== DynamicTypePropagation.cpp -------------------------------- -*- C++ -*--=//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This checker defines the rules for dynamic type gathering and propagation.</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="ClangSACheckers_8h.html">ClangSACheckers.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="Builtins_8h.html" title="Defines enum values for all the target-independent builtin functions.">clang/Basic/Builtins.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="BugType_8h.html">clang/StaticAnalyzer/Core/BugReporter/BugType.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="Checker_8h.html">clang/StaticAnalyzer/Core/Checker.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="CheckerManager_8h.html">clang/StaticAnalyzer/Core/CheckerManager.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="CallEvent_8h.html">clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="CheckerContext_8h.html">clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="ProgramStateTrait_8h.html">clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">using namespace </span>ento;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keyword">class </span>DynamicTypePropagation:</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>     <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a>< check::PreCall,</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>                     check::PostCall,</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>                     check::PostStmt<ImplicitCastExpr>,</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>                     check::PostStmt<CXXNewExpr> > {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *getObjectTypeForAllocAndNew(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *MsgE,</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>                                                     <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment"></span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">  /// \brief Return a better dynamic type if one can be derived from the cast.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *getBetterObjCType(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *CastE,</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>                                                  <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <span class="keywordtype">void</span> checkPreCall(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CallEvent.html" title="Represents an abstract call to a function or method along a particular path.">CallEvent</a> &Call, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <span class="keywordtype">void</span> checkPostCall(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CallEvent.html" title="Represents an abstract call to a function or method along a particular path.">CallEvent</a> &Call, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="keywordtype">void</span> checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> *CastE, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="keywordtype">void</span> checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXNewExpr.html" title="Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)"...">CXXNewExpr</a> *NewE, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> };</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> }</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="DynamicTypePropagation_8cpp.html#a54c79af36bf080745de998f6ead0c598">   46</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="DynamicTypePropagation_8cpp.html#a54c79af36bf080745de998f6ead0c598">recordFixedType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *Region, <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> *MD,</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>                             <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) {</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   assert(Region);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   assert(MD);</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>   <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>();</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3574cad49cba0fc48ab7b4c953e7e31e" title="Return the uniqued reference to the type for a pointer to the specified type.">getPointerType</a>(Ctx.<a class="code" href="classclang_1_1ASTContext.html#a2f2e06312812efc11ce91abe0695ba75">getRecordType</a>(MD-><a class="code" href="classclang_1_1CXXMethodDecl.html#a89937377c3cbaa960c0d35a2b0100071">getParent</a>()));</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>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a> = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>   State = State->setDynamicTypeInfo(Region, Ty, <span class="comment">/*CanBeSubclass=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(State);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> }</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="keywordtype">void</span> DynamicTypePropagation::checkPreCall(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CallEvent.html" title="Represents an abstract call to a function or method along a particular path.">CallEvent</a> &Call,</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>                                           <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorCall.html" title="Represents a call to a C++ constructor.">CXXConstructorCall</a> *Ctor = dyn_cast<CXXConstructorCall>(&Call)) {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>     <span class="comment">// C++11 [class.cdtor]p4: When a virtual function is called directly or</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     <span class="comment">//   indirectly from a constructor or from a destructor, including during</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>     <span class="comment">//   the construction or destruction of the class's non-static data members,</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     <span class="comment">//   and the object to which the call applies is the object under</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>     <span class="comment">//   construction or destruction, the function called is the final overrider</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>     <span class="comment">//   in the constructor's or destructor's class and not one overriding it in</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>     <span class="comment">//   a more-derived class.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     <span class="keywordflow">switch</span> (Ctor->getOriginExpr()->getConstructionKind()) {</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CXXConstructExpr.html#a88db2c2b9ae313af0f3310a600bc44b5a3733e434dafb17cdbee82c01462a4da8">CXXConstructExpr::CK_Complete</a>:</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CXXConstructExpr.html#a88db2c2b9ae313af0f3310a600bc44b5a22f1a5d2b5baa0b0726243ef8ffd27ee">CXXConstructExpr::CK_Delegating</a>:</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>       <span class="comment">// No additional type info necessary.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CXXConstructExpr.html#a88db2c2b9ae313af0f3310a600bc44b5a4018db20cea3318e42f7eda9798449fa">CXXConstructExpr::CK_NonVirtualBase</a>:</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CXXConstructExpr.html#a88db2c2b9ae313af0f3310a600bc44b5a0b85c1db0f2c292fce108d89f2f16f05">CXXConstructExpr::CK_VirtualBase</a>:</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>       <span class="keywordflow">if</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> *Target = Ctor->getCXXThisVal().getAsRegion())</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>         <a class="code" href="DynamicTypePropagation_8cpp.html#a54c79af36bf080745de998f6ead0c598">recordFixedType</a>(Target, Ctor->getDecl(), C);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>     }</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXDestructorCall.html" title="Represents an implicit call to a C++ destructor.">CXXDestructorCall</a> *Dtor = dyn_cast<CXXDestructorCall>(&Call)) {</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>     <span class="comment">// C++11 [class.cdtor]p4 (see above)</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>     <span class="keywordflow">if</span> (!Dtor->isBaseDestructor())</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *Target = Dtor->getCXXThisVal().getAsRegion();</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     <span class="keywordflow">if</span> (!Target)</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D = Dtor->getDecl();</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>     <span class="keywordflow">if</span> (!D)</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>       <span class="keywordflow">return</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>     <a class="code" href="DynamicTypePropagation_8cpp.html#a54c79af36bf080745de998f6ead0c598">recordFixedType</a>(Target, cast<CXXDestructorDecl>(D), C);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   }</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> }</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="keywordtype">void</span> DynamicTypePropagation::checkPostCall(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CallEvent.html" title="Represents an abstract call to a function or method along a particular path.">CallEvent</a> &Call,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>                                            <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   <span class="comment">// We can obtain perfect type info for return values from some calls.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> *Msg = dyn_cast<ObjCMethodCall>(&Call)) {</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>     <span class="comment">// Get the returned value if it's a region.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</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> *RetReg = Call.<a class="code" href="classclang_1_1ento_1_1CallEvent.html#a4b8985ea0b28fc1c4e074902453350ac" title="Returns the return value of the call.">getReturnValue</a>().<a class="code" href="classclang_1_1ento_1_1SVal.html#a314f514171211c8a941cac378ac55677">getAsRegion</a>();</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>     <span class="keywordflow">if</span> (!RetReg)</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>       <span class="keywordflow">return</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>     <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a> = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *D = Msg->getDecl();</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>     <span class="keywordflow">if</span> (D && D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af39c2be03915c55301f0d4961e496c2a" title="Determine whether this method has a result type that is related to the message receiver's type...">hasRelatedResultType</a>()) {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>       <span class="keywordflow">switch</span> (Msg->getMethodFamily()) {</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>       <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>       <span class="comment">// We assume that the type of the object returned by alloc and new are the</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>       <span class="comment">// pointer to the object of the class specified in the receiver of the</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>       <span class="comment">// message.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a5dc786a6640e4d510cd8b68a5a87a140aa2506f3f3aa110c8634c520cac188850">OMF_alloc</a>:</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a5dc786a6640e4d510cd8b68a5a87a140add0d96887fd8a747f93910ca08eb466c">OMF_new</a>: {</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>         <span class="comment">// Get the type of object that will get created.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *MsgE = Msg->getOriginExpr();</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *ObjTy = getObjectTypeForAllocAndNew(MsgE, C);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>         <span class="keywordflow">if</span> (!ObjTy)</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>           <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>         <a class="code" href="classclang_1_1QualType.html">QualType</a> DynResTy =</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>                  C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a5c1abc77f994ace61ebfd7c864b64244" title="Return a ObjCObjectPointerType type for the given ObjCObjectType.">getObjCObjectPointerType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a>(ObjTy, 0));</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>         C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(State->setDynamicTypeInfo(RetReg, DynResTy, <span class="keyword">false</span>));</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>       }</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a5dc786a6640e4d510cd8b68a5a87a140a7749fb8107514089095277752fe75ece">OMF_init</a>: {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>         <span class="comment">// Assume, the result of the init method has the same dynamic type as</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>         <span class="comment">// the receiver and propagate the dynamic type info.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *RecReg = Msg->getReceiverSVal().getAsRegion();</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>         <span class="keywordflow">if</span> (!RecReg)</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>           <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>         <a class="code" href="classclang_1_1ento_1_1DynamicTypeInfo.html" title="Stores the currently inferred strictest bound on the runtime type of a region in a given state along ...">DynamicTypeInfo</a> RecDynType = State->getDynamicTypeInfo(RecReg);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>         C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(State->setDynamicTypeInfo(RetReg, RecDynType));</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>       }</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>       }</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>     }</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>     <span class="keywordflow">return</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> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorCall.html" title="Represents a call to a C++ constructor.">CXXConstructorCall</a> *Ctor = dyn_cast<CXXConstructorCall>(&Call)) {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>     <span class="comment">// We may need to undo the effects of our pre-call check.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     <span class="keywordflow">switch</span> (Ctor->getOriginExpr()->getConstructionKind()) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CXXConstructExpr.html#a88db2c2b9ae313af0f3310a600bc44b5a3733e434dafb17cdbee82c01462a4da8">CXXConstructExpr::CK_Complete</a>:</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CXXConstructExpr.html#a88db2c2b9ae313af0f3310a600bc44b5a22f1a5d2b5baa0b0726243ef8ffd27ee">CXXConstructExpr::CK_Delegating</a>:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>       <span class="comment">// No additional work necessary.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>       <span class="comment">// Note: This will leave behind the actual type of the object for</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>       <span class="comment">// complete constructors, but arguably that's a good thing, since it</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>       <span class="comment">// means the dynamic type info will be correct even for objects</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>       <span class="comment">// constructed with operator new.</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CXXConstructExpr.html#a88db2c2b9ae313af0f3310a600bc44b5a4018db20cea3318e42f7eda9798449fa">CXXConstructExpr::CK_NonVirtualBase</a>:</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1CXXConstructExpr.html#a88db2c2b9ae313af0f3310a600bc44b5a0b85c1db0f2c292fce108d89f2f16f05">CXXConstructExpr::CK_VirtualBase</a>:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>       <span class="keywordflow">if</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> *Target = Ctor->getCXXThisVal().getAsRegion()) {</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>         <span class="comment">// We just finished a base constructor. Now we can use the subclass's</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>         <span class="comment">// type when resolving virtual calls.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a7581c66c5849fab4a40b321024c9c136">getLocationContext</a>()-><a class="code" href="classclang_1_1LocationContext.html#a251ad7818f2d85e845c62804fcd8b04b">getDecl</a>();</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>         <a class="code" href="DynamicTypePropagation_8cpp.html#a54c79af36bf080745de998f6ead0c598">recordFixedType</a>(Target, cast<CXXConstructorDecl>(D), C);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>       }</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     }</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   }</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> }</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="keywordtype">void</span> DynamicTypePropagation::checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> *CastE,</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>                                            <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <span class="comment">// We only track dynamic type info for regions.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</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> *ToR = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a0d759e052a03b3b956294899dc2ccd0d" title="Get the value of arbitrary expressions at this point in the path.">getSVal</a>(CastE).<a class="code" href="classclang_1_1ento_1_1SVal.html#a314f514171211c8a941cac378ac55677">getAsRegion</a>();</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   <span class="keywordflow">if</span> (!ToR)</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   <span class="keywordflow">switch</span> (CastE-><a class="code" href="classclang_1_1CastExpr.html#a9579ef9370fffd8c5e4bee485eac9265">getCastKind</a>()) {</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca183b8948b82911a415cc54446ddcb3ab">CK_BitCast</a>:</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>     <span class="comment">// Only handle ObjCObjects for now.</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1Type.html">Type</a> *NewTy = getBetterObjCType(CastE, C))</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>       C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>()->setDynamicTypeInfo(ToR, <a class="code" href="classclang_1_1QualType.html">QualType</a>(NewTy,0)));</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   }</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> }</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="keywordtype">void</span> DynamicTypePropagation::checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXNewExpr.html" title="Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)"...">CXXNewExpr</a> *NewE,</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>                                            <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>   <span class="keywordflow">if</span> (NewE-><a class="code" href="classclang_1_1CXXNewExpr.html#a75bbeee456e9bf2e4b2543dc906c8b79">isArray</a>())</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     <span class="keywordflow">return</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="comment">// We only track dynamic type info for regions.</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *MR = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a0d759e052a03b3b956294899dc2ccd0d" title="Get the value of arbitrary expressions at this point in the path.">getSVal</a>(NewE).<a class="code" href="classclang_1_1ento_1_1SVal.html#a314f514171211c8a941cac378ac55677">getAsRegion</a>();</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>   <span class="keywordflow">if</span> (!MR)</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>   </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>   C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>()->setDynamicTypeInfo(MR, NewE-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(),</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>                                                    <span class="comment">/*CanBeSubclass=*/</span><span class="keyword">false</span>));</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> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> DynamicTypePropagation::getObjectTypeForAllocAndNew(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *MsgE,</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>                                                     <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>   <span class="keywordflow">if</span> (MsgE-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a7020f79f1cd86ca26de4595bc3cac99c" title="Determine the kind of receiver that this message is being sent to.">getReceiverKind</a>() == <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3af0ac31ca6897a72531f404e6356c0951" title="The receiver is a class.">ObjCMessageExpr::Class</a>) {</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *ObjTy</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>           = MsgE-><a class="code" href="classclang_1_1ObjCMessageExpr.html#aada0b0ab2bf852f5e78be1decd748ae6" title="Returns the type of a class message send, or NULL if the message is not a class message.">getClassReceiver</a>()-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a>>())</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>     <span class="keywordflow">return</span> ObjTy;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   }</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   <span class="keywordflow">if</span> (MsgE-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a7020f79f1cd86ca26de4595bc3cac99c" title="Determine the kind of receiver that this message is being sent to.">getReceiverKind</a>() == <a class="code" href="classclang_1_1ObjCMessageExpr.html#a55e47323b0150a66564ab406567a40f3adc904b05090355dbf60d3e1eff934a54" title="The receiver is a superclass.">ObjCMessageExpr::SuperClass</a>) {</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *ObjTy</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>           = MsgE-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a9a96db22972ed90304c8599838d5dc6c" title="Retrieve the type referred to by 'super'.">getSuperType</a>()-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a>>())</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>       <span class="keywordflow">return</span> ObjTy;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>   }</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *RecE = MsgE-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a52ac8728aad0bc716d5c87887f332cf9" title="Returns the object expression (receiver) for an instance message, or null for a message that is not a...">getInstanceReceiver</a>();</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   <span class="keywordflow">if</span> (!RecE)</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     <span class="keywordflow">return</span> 0;</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>   RecE= RecE-><a class="code" href="classclang_1_1Expr.html#a54036c75e73ecdf081729210fa53e582">IgnoreParenImpCasts</a>();</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   <span class="keywordflow">if</span> (<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> *DRE = dyn_cast<DeclRefExpr>(RecE)) {</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *SFCtx = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#aaec76d55f2a04c21b742f745a4540193">getStackFrame</a>();</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>     <span class="comment">// Are we calling [self alloc]? If this is self, get the type of the</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>     <span class="comment">// enclosing ObjC class.</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     <span class="keywordflow">if</span> (DRE->getDecl() == SFCtx-><a class="code" href="classclang_1_1LocationContext.html#aa93c05ac9cc25727d7ec9419665e13f7">getSelfDecl</a>()) {</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = dyn_cast<ObjCMethodDecl>(SFCtx-><a class="code" href="classclang_1_1LocationContext.html#a251ad7818f2d85e845c62804fcd8b04b">getDecl</a>()))</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>         <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *ObjTy =</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>             dyn_cast<ObjCObjectType>(MD->getClassInterface()->getTypeForDecl()))</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>           <span class="keywordflow">return</span> ObjTy;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>     }</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>   }</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   <span class="keywordflow">return</span> 0;</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> </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">// Return a better dynamic type if one can be derived from the cast.</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">// Compare the current dynamic type of the region and the new type to which we</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">// are casting. If the new type is lower in the inheritance hierarchy, pick it.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> DynamicTypePropagation::getBetterObjCType(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *CastE,</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>                                           <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</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> *ToR = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a0d759e052a03b3b956294899dc2ccd0d" title="Get the value of arbitrary expressions at this point in the path.">getSVal</a>(CastE).<a class="code" href="classclang_1_1ento_1_1SVal.html#a314f514171211c8a941cac378ac55677">getAsRegion</a>();</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>   assert(ToR);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>   <span class="comment">// Get the old and new types.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *NewTy =</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>       CastE-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a>>();</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>   <span class="keywordflow">if</span> (!NewTy)</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> OldDTy = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>()->getDynamicTypeInfo(ToR).getType();</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>   <span class="keywordflow">if</span> (OldDTy.<a class="code" href="classclang_1_1QualType.html#a8f87f58000490ad01cd09add1f27d7ac" title="isNull - Return true if this QualType doesn't point to a type yet.">isNull</a>()) {</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     <span class="keywordflow">return</span> NewTy;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   }</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *OldTy =</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>     OldDTy-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a>>();</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>   <span class="keywordflow">if</span> (!OldTy)</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>     <span class="keywordflow">return</span> 0;</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="comment">// Id the old type is 'id', the new one is more precise.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>   <span class="keywordflow">if</span> (OldTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#ac4ed4d1ecf9acc17f5d2b9b7ff15f1cb">isObjCIdType</a>() && !NewTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#ac4ed4d1ecf9acc17f5d2b9b7ff15f1cb">isObjCIdType</a>())</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>     <span class="keywordflow">return</span> NewTy;</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>   <span class="comment">// Return new if it's a subclass of old.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *ToI = NewTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#a74a117fdc7c1e38b75939935f1a243ff">getInterfaceDecl</a>();</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *FromI = OldTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#a74a117fdc7c1e38b75939935f1a243ff">getInterfaceDecl</a>();</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>   <span class="keywordflow">if</span> (ToI && FromI && FromI-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a475a3c7ebb9047da9464a1157789c1e1">isSuperClassOf</a>(ToI))</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>     <span class="keywordflow">return</span> NewTy;</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>   <span class="keywordflow">return</span> 0;</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> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="keywordtype">void</span> ento::registerDynamicTypePropagation(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><DynamicTypePropagation>();</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/DynamicTypePropagation_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypePropagation_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypePropagation_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/DynamicTypePropagation_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,591 @@
+<!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: DynamicTypePropagation.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li><li class="navelem"><a class="el" href="dir_6f95b71040c11c69a7222376e6764bfb.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">DynamicTypePropagation.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="DynamicTypePropagation_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/DynamicTypePropagation.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/DynamicTypePropagation.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  DynamicTypePropagation.cpp ClangSACheckers.h \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h \
+ Checkers.inc \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugType.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/Checker.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/ProgramPoint.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<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="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/CFG.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/Support/BumpVector.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/CheckerManager.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="classCallEvent.html">CallEvent</a>.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/DomainSpecific/ObjCNoReturn.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/include/llvm/ADT/ilist.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/include/llvm/ADT/ilist_node.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang_1_1ento.html#a6fdc30c38dd63e730328d865d956562e">PathDiagnosticConsumers</a>.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/include/llvm/ADT/DepthFirstIterator.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/include/llvm/ADT/SmallBitVector.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>  /home/tstellar/llvm/include/llvm/ADT/BitVector.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h \</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.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> ClangSACheckers.h:</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.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> Checkers.inc:</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/StaticAnalyzer/Checkers/../../../include/clang/Basic/Builtins.h:</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> /home/tstellar/llvm/include/llvm/Support/Casting.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/type_traits.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/DataTypes.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/ADT/None.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/Checkers/../../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugType.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/Checker.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/Checkers/../../../include/clang/Analysis/ProgramPoint.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/Checkers/../../../include/clang/Analysis/AnalysisContext.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.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/APSInt.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/PointerIntPair.h:</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.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/Checkers/../../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.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/Checkers/../../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.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/Checkers/../../../include/clang/Basic/TokenKinds.def:</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/SmallString.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/PartialDiagnostic.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticIDs.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/IntrusiveRefCntPtr.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/Checkers/../../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceLocation.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/DenseMap.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/ADT/DenseMapInfo.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/ADT/STLExtras.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/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Specifiers.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/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclNodes.inc:</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/Checkers/../../../include/clang/AST/ExternalASTSource.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/Checkers/../../../include/clang/AST/CharUnits.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/Checkers/../../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Type.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/Checkers/../../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateName.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/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="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/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/include/llvm/ADT/Twine.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/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.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/Support/FileSystem.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/OwningPtr.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/TimeValue.h:</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/CFG.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/Support/BumpVector.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/include/llvm/ADT/GraphTraits.h:</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/CheckerManager.h:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.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/Checkers/../../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/VersionTuple.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/include/llvm/ADT/Triple.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/Checkers/../../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h:</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateBase.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/Checkers/../../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.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/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AddressSpaces.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/include/llvm/ADT/SmallPtrSet.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/TinyPtrVector.h:</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprObjC.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/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="l00408"></a><span class="lineno">  408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Expr.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/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTVector.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/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h:</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.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/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.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/include/llvm/ADT/ImmutableList.h:</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h:</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.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/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h:</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/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="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/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="classCallEvent.html">CallEvent</a>.h:</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclCXX.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/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTUnresolvedSet.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/StaticAnalyzer/Checkers/../../../include/clang/AST/UnresolvedSet.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/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.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/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h:</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h:</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h:</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h:</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h:</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h:</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h:</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h:</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h:</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/DomainSpecific/ObjCNoReturn.h:</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> </div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.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/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.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/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h:</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.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/ilist.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/include/llvm/ADT/ilist_node.h:</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h:</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang_1_1ento.html#a6fdc30c38dd63e730328d865d956562e">PathDiagnosticConsumers</a>.h:</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.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/ADT/DepthFirstIterator.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.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/ADT/SmallBitVector.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/ADT/BitVector.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/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h:</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/EHScopeStack_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/EHScopeStack_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/EHScopeStack_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/EHScopeStack_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,568 @@
+<!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: EHScopeStack.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_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_373837989a1dc63be881832a195d38c3.html">CodeGen</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">EHScopeStack.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="EHScopeStack_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">//===-- EHScopeStack.h - Stack for cleanup IR generation --------*- 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">// These classes should be the minimum interface required for other parts of</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// CodeGen to emit cleanups.  The implementation is in CGCleanup.cpp and other</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">// implemenentation details that are not widely needed are in CGCleanup.h.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#ifndef CLANG_CODEGEN_EHSCOPESTACK_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor"></span><span class="preprocessor">#define CLANG_CODEGEN_EHSCOPESTACK_H</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="LLVM_8h.html" title="Forward declares and imports various common LLVM datatypes that clang wants to use unqualified...">clang/Basic/LLVM.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/IR/BasicBlock.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/IR/Value.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/IR/Instructions.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">namespace </span>CodeGen {</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>CodeGenFunction;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment"></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">/// A branch fixup.  These are required when emitting a goto to a</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">/// label which hasn't been emitted yet.  The goto is optimistically</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">/// emitted as a branch to the basic block for the label, and (if it</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">/// occurs in a scope with non-trivial cleanups) a fixup is added to</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">/// the innermost cleanup.  When a (normal) cleanup is popped, any</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">/// unresolved fixups in that scope are threaded through the cleanup.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html">   36</a></span> <span class="comment"></span><span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html">BranchFixup</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">  /// The block containing the terminator which needs to be modified</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">  /// into a switch if this fixup is resolved into the current scope.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">  /// If null, LatestBranch points directly to the destination.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html#a721b871f0e2fbbbfcb1b846b18519590">   40</a></span> <span class="comment"></span>  llvm::BasicBlock *<a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html#a721b871f0e2fbbbfcb1b846b18519590">OptimisticBranchBlock</a>;</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">  /// The ultimate destination of the branch.</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">  /// This can be set to null to indicate that this fixup was</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">  /// successfully resolved.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html#a5fce1553000d278920c2fc1f730d1fda">   46</a></span> <span class="comment"></span>  llvm::BasicBlock *<a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html#a5fce1553000d278920c2fc1f730d1fda">Destination</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">  /// The destination index value.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html#a28e58ca4d2f5fad039de4dfe09cd2cca">   49</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html#a28e58ca4d2f5fad039de4dfe09cd2cca" title="The destination index value.">DestinationIndex</a>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment"></span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">  /// The initial branch of the fixup.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html#af9f86422254d3fe4d0cd330d61918273">   52</a></span> <span class="comment"></span>  llvm::BranchInst *<a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html#af9f86422254d3fe4d0cd330d61918273" title="The initial branch of the fixup.">InitialBranch</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> };</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html">   55</a></span> <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html">InvariantValue</a> {</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#abae17625d056ab3bd009421574aaa42e">   56</a></span>   <span class="keyword">typedef</span> T <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#abae17625d056ab3bd009421574aaa42e">type</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a8d680b04bdf3f39371b0ae1ca72dc8e0">   57</a></span>   <span class="keyword">typedef</span> T <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a8d680b04bdf3f39371b0ae1ca72dc8e0">saved_type</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a0073cb83158714f7a4bbb53addf42979">   58</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a0073cb83158714f7a4bbb53addf42979">needsSaving</a>(<a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#abae17625d056ab3bd009421574aaa42e">type</a> value) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a5a95bc40699a2f96e8a5f0d14d624ff2">   59</a></span>   <span class="keyword">static</span> <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a8d680b04bdf3f39371b0ae1ca72dc8e0">saved_type</a> <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a5a95bc40699a2f96e8a5f0d14d624ff2">save</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#abae17625d056ab3bd009421574aaa42e">type</a> value) { <span class="keywordflow">return</span> value; }</div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">   60</a></span>   <span class="keyword">static</span> <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#abae17625d056ab3bd009421574aaa42e">type</a> <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">restore</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a8d680b04bdf3f39371b0ae1ca72dc8e0">saved_type</a> value) { <span class="keywordflow">return</span> value; }</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="comment"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">/// A metaprogramming class for ensuring that a value will dominate an</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">/// arbitrary position in a function.</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">   65</a></span> <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue</a> : <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html">InvariantValue</a><T> {};</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="keyword">template</span> <<span class="keyword">class </span>T, <span class="keywordtype">bool</span> mightBeInstruction =</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>             llvm::is_base_of<llvm::Value, T>::value &&</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>             !llvm::is_base_of<llvm::Constant, T>::value &&</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>             !llvm::is_base_of<llvm::BasicBlock, T>::value></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer.html">   71</a></span> <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer.html">DominatingPointer</a>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer_3_01T_00_01false_01_4.html">   72</a></span> <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer.html">DominatingPointer</a><T,<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>> : <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html">InvariantValue</a><T*> {};</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">// template <class T> struct DominatingPointer<T,true> at end of file</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue_3_01T_01_5_01_4.html">   75</a></span> <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">struct </span><a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue</a><T*> : <a class="code" href="structclang_1_1CodeGen_1_1DominatingPointer.html">DominatingPointer<T></a> {};</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="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">   77</a></span> <span class="keyword">enum</span> <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> {</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa2a393433bdad04753d5b3b39597b2e90">   78</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa2a393433bdad04753d5b3b39597b2e90">EHCleanup</a> = 0x1,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa10fc653c48ca5920abf8664d6efd7158">   79</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa10fc653c48ca5920abf8664d6efd7158">NormalCleanup</a> = 0x2,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa142bdd64990b3ca421f185b630db66c8">   80</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa142bdd64990b3ca421f185b630db66c8">NormalAndEHCleanup</a> = <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa2a393433bdad04753d5b3b39597b2e90">EHCleanup</a> | <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa10fc653c48ca5920abf8664d6efd7158">NormalCleanup</a>,</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="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa6f9dc76364b1342b861821aa979b8af9">   82</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa6f9dc76364b1342b861821aa979b8af9">InactiveCleanup</a> = 0x4,</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fad0abd220ac5deb76d012c667d503c2c8">   83</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fad0abd220ac5deb76d012c667d503c2c8">InactiveEHCleanup</a> = <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa2a393433bdad04753d5b3b39597b2e90">EHCleanup</a> | <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa6f9dc76364b1342b861821aa979b8af9">InactiveCleanup</a>,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6faf13f1beca1303163b2e40787a5e20e98">   84</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6faf13f1beca1303163b2e40787a5e20e98">InactiveNormalCleanup</a> = <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa10fc653c48ca5920abf8664d6efd7158">NormalCleanup</a> | <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa6f9dc76364b1342b861821aa979b8af9">InactiveCleanup</a>,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fae79520600d235cd58ad8162e6aac7c6c">   85</a></span>   <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fae79520600d235cd58ad8162e6aac7c6c">InactiveNormalAndEHCleanup</a> = <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa142bdd64990b3ca421f185b630db66c8">NormalAndEHCleanup</a> | <a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6fa6f9dc76364b1342b861821aa979b8af9">InactiveCleanup</a></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"></span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">/// A stack of scopes which respond to exceptions, including cleanups</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">/// and catch blocks.</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html">   90</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html">EHScopeStack</a> {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">  /// A saved depth on the scope stack.  This is necessary because</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">  /// pushing scopes onto the stack invalidates iterators.</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">   94</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a4f9b68ee4b205bc8261f70433525f191">   95</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html">EHScopeStack</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment"></span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">    /// Offset from StartOfData to EndOfBuffer.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment"></span>    <a class="code" href="stddef_8h.html#a6d26a0475a6d6c897e655cdc5d8019d2">ptrdiff_t</a> Size;</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>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a37127cce19c353c6b421fc218920b15b">stable_iterator</a>(<a class="code" href="stddef_8h.html#a6d26a0475a6d6c897e655cdc5d8019d2">ptrdiff_t</a> Size) : Size(Size) {}</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a52b00e1db5f2ac7b676af64c9421a53c">  103</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a52b00e1db5f2ac7b676af64c9421a53c">invalid</a>() { <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a37127cce19c353c6b421fc218920b15b">stable_iterator</a>(-1); }</div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a37127cce19c353c6b421fc218920b15b">  104</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a37127cce19c353c6b421fc218920b15b">stable_iterator</a>() : Size(-1) {}</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#aaaa8ff69955e285c731f5ebb9304c41d">  106</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#aaaa8ff69955e285c731f5ebb9304c41d">isValid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Size >= 0; }</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment"></span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">    /// Returns true if this scope encloses I.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">    /// Returns false if I is invalid.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">    /// This scope must be valid.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#aacc06a16e2977a1be1db84a1403701f3">  111</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#aacc06a16e2977a1be1db84a1403701f3">encloses</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> I)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Size <= I.Size; }</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment"></span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">    /// Returns true if this scope strictly encloses I: that is,</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">    /// if it encloses I and is not I.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">    /// Returns false is I is invalid.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">    /// This scope must be valid.</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a5888dc6eb61bf00ec3c92e179a45b8bc">  117</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a5888dc6eb61bf00ec3c92e179a45b8bc">strictlyEncloses</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> I)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Size < I.Size; }</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a70394df276c9b1eda86a1456929dd0d4">  119</a></span>     <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a70394df276c9b1eda86a1456929dd0d4">operator==</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> A, <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> B) {</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>       <span class="keywordflow">return</span> A.Size == B.Size;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>     }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a77cea66b6925e31d6b83a26486b02c2f">  122</a></span>     <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html#a77cea66b6925e31d6b83a26486b02c2f">operator!=</a>(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> A, <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> B) {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>       <span class="keywordflow">return</span> A.Size != B.Size;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     }</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   };</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment"></span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">  /// Information for lazily generating a cleanup.  Subclasses must be</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">  /// POD-like: cleanups will not be destructed, and they will be</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">  /// allocated on the cleanup stack and freely copied and moved</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">  /// around.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">  /// Cleanup implementations should generally be declared in an</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">  /// anonymous namespace.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">  134</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> {</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>     <span class="comment">// Anchor the construction vtable.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">    /// Generation flags.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html">  139</a></span> <span class="comment"></span>    <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html" title="Generation flags.">Flags</a> {</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>       <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>         F_IsForEH             = 0x1,</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>         F_IsNormalCleanupKind = 0x2,</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>         F_IsEHCleanupKind     = 0x4</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>       };</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>       <span class="keywordtype">unsigned</span> flags;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>     <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a8d28a68d7d65acaf49d37445985e03d8">  148</a></span>       <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a8d28a68d7d65acaf49d37445985e03d8">Flags</a>() : flags(0) {}</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment"></span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">      /// isForEH - true if the current emission is for an EH cleanup.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a4a0007678fc08ad758d8eab180e2fd72">  151</a></span> <span class="comment"></span>      <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a4a0007678fc08ad758d8eab180e2fd72" title="isForEH - true if the current emission is for an EH cleanup.">isForEHCleanup</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> flags & F_IsForEH; }</div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a0f7851429a271f896d23a1d5b227be6e">  152</a></span>       <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a0f7851429a271f896d23a1d5b227be6e">isForNormalCleanup</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a4a0007678fc08ad758d8eab180e2fd72" title="isForEH - true if the current emission is for an EH cleanup.">isForEHCleanup</a>(); }</div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#afe8e6071b73a209c15e641b4e981eda8">  153</a></span>       <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#afe8e6071b73a209c15e641b4e981eda8">setIsForEHCleanup</a>() { flags |= F_IsForEH; }</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a05505911b27fe6dda34772069fa7f09d">  155</a></span>       <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a05505911b27fe6dda34772069fa7f09d">isNormalCleanupKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> flags & F_IsNormalCleanupKind; }</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#aae5c71eabbc5ba31935fa2807989a8ed">  156</a></span>       <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#aae5c71eabbc5ba31935fa2807989a8ed">setIsNormalCleanupKind</a>() { flags |= F_IsNormalCleanupKind; }</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">      /// isEHCleanupKind - true if the cleanup was pushed as an EH</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">      /// cleanup.</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a4216b26583b2c3c3474c019aaae229a8">  160</a></span> <span class="comment"></span>      <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#a4216b26583b2c3c3474c019aaae229a8">isEHCleanupKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> flags & F_IsEHCleanupKind; }</div>
+<div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#af3d4488bf80672bbc86edab6ebd53677">  161</a></span>       <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html#af3d4488bf80672bbc86edab6ebd53677">setIsEHCleanupKind</a>() { flags |= F_IsEHCleanupKind; }</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> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>     <span class="comment">// Provide a virtual destructor to suppress a very common warning</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     <span class="comment">// that unfortunately cannot be suppressed without this.  Cleanups</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>     <span class="comment">// should not rely on this destructor ever being called.</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html#a24ffcd299c8de8738fa8c2e87f9a6893">  167</a></span>     <span class="keyword">virtual</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html#a24ffcd299c8de8738fa8c2e87f9a6893">~Cleanup</a>() {}</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment"></span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">    /// Emit the cleanup.  For normal cleanups, this is run in the</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">    /// same EH context as when the cleanup was pushed, i.e. the</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">    /// immediately-enclosing context of the cleanup scope.  For</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">    /// EH cleanups, this is run in a terminate context.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment"></span>    <span class="comment">// \param flags cleanup kind.</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html#a8ee9056bf3af5a30a1bd2b9a7e152550">Emit</a>(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, Flags flags) = 0;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   };</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment"></span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">  /// ConditionalCleanupN stores the saved form of its N parameters,</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">  /// then restores them and performs the cleanup.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0></div>
+<div class="line"><a name="l00181"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup1.html">  181</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup1.html">ConditionalCleanup1</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> {</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A0>::saved_type</a> A0_saved;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>     A0_saved a0_saved;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>     <span class="keywordtype">void</span> Emit(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html" title="Generation flags.">Flags</a> flags) {</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>       A0 a0 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A0>::restore</a>(CGF, a0_saved);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>       T(a0).Emit(CGF, flags);</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> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup1.html#a21527d7fe261a90cceb10c5fd4f86192">  191</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup1.html#a21527d7fe261a90cceb10c5fd4f86192">ConditionalCleanup1</a>(A0_saved a0)</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>       : a0_saved(a0) {}</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>   };</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>   <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1></div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup2.html">  196</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup2.html">ConditionalCleanup2</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> {</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A0>::saved_type</a> A0_saved;</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A1>::saved_type</a> A1_saved;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>     A0_saved a0_saved;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>     A1_saved a1_saved;</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>     <span class="keywordtype">void</span> Emit(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html" title="Generation flags.">Flags</a> flags) {</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>       A0 a0 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A0>::restore</a>(CGF, a0_saved);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>       A1 a1 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A1>::restore</a>(CGF, a1_saved);</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>       T(a0, a1).Emit(CGF, flags);</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> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup2.html#a34491e2f27d56d38efed389d5b7044e9">  209</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup2.html#a34491e2f27d56d38efed389d5b7044e9">ConditionalCleanup2</a>(A0_saved a0, A1_saved a1)</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>       : a0_saved(a0), a1_saved(a1) {}</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">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2></div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup3.html">  214</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup3.html">ConditionalCleanup3</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> {</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A0>::saved_type</a> A0_saved;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A1>::saved_type</a> A1_saved;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A2>::saved_type</a> A2_saved;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>     A0_saved a0_saved;</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     A1_saved a1_saved;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     A2_saved a2_saved;</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>     <span class="keywordtype">void</span> Emit(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html" title="Generation flags.">Flags</a> flags) {</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>       A0 a0 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A0>::restore</a>(CGF, a0_saved);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>       A1 a1 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A1>::restore</a>(CGF, a1_saved);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>       A2 a2 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A2>::restore</a>(CGF, a2_saved);</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>       T(a0, a1, a2).Emit(CGF, flags);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     }</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00230"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup3.html#ad3bd82bef53b29ac4a50c1af1bcca1a5">  230</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup3.html#ad3bd82bef53b29ac4a50c1af1bcca1a5">ConditionalCleanup3</a>(A0_saved a0, A1_saved a1, A2_saved a2)</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>       : a0_saved(a0), a1_saved(a1), a2_saved(a2) {}</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   };</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3></div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup4.html">  235</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup4.html">ConditionalCleanup4</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> {</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A0>::saved_type</a> A0_saved;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A1>::saved_type</a> A1_saved;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A2>::saved_type</a> A2_saved;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structclang_1_1CodeGen_1_1DominatingValue.html">DominatingValue<A3>::saved_type</a> A3_saved;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>     A0_saved a0_saved;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     A1_saved a1_saved;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>     A2_saved a2_saved;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>     A3_saved a3_saved;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>     <span class="keywordtype">void</span> Emit(<a class="code" href="classclang_1_1CodeGen_1_1CodeGenFunction.html">CodeGenFunction</a> &CGF, <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup_1_1Flags.html" title="Generation flags.">Flags</a> flags) {</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>       A0 a0 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A0>::restore</a>(CGF, a0_saved);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>       A1 a1 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A1>::restore</a>(CGF, a1_saved);</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>       A2 a2 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A2>::restore</a>(CGF, a2_saved);</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>       A3 a3 = <a class="code" href="structclang_1_1CodeGen_1_1InvariantValue.html#a1b06ca462adf24dbb3d5936d4da726cc">DominatingValue<A3>::restore</a>(CGF, a3_saved);</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>       T(a0, a1, a2, a3).Emit(CGF, flags);</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="keyword">public</span>:</div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup4.html#ad24877ba42c3069be9c44f6810e55cd5">  254</a></span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1ConditionalCleanup4.html#ad24877ba42c3069be9c44f6810e55cd5">ConditionalCleanup4</a>(A0_saved a0, A1_saved a1, A2_saved a2, A3_saved a3)</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>       : a0_saved(a0), a1_saved(a1), a2_saved(a2), a3_saved(a3) {}</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   };</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>   <span class="comment">// The implementation for this class is in CGException.h and</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   <span class="comment">// CGException.cpp; the definition is here because it's used as a</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>   <span class="comment">// member of CodeGenFunction.</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment"></span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">  /// The start of the scope-stack buffer, i.e. the allocated pointer</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">  /// for the buffer.  All of these pointers are either simultaneously</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">  /// null or simultaneously valid.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment"></span>  <span class="keywordtype">char</span> *StartOfBuffer;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment"></span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">  /// The end of the buffer.</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment"></span>  <span class="keywordtype">char</span> *EndOfBuffer;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment"></span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">  /// The first valid entry in the buffer.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment"></span>  <span class="keywordtype">char</span> *StartOfData;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment"></span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">  /// The innermost normal cleanup on the stack.</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment"></span>  stable_iterator InnermostNormalCleanup;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment"></span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">  /// The innermost EH scope on the stack.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment"></span>  stable_iterator InnermostEHScope;</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment"></span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">  /// The current set of branch fixups.  A branch fixup is a jump to</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">  /// an as-yet unemitted label, i.e. a label for which we don't yet</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">  /// know the EH stack depth.  Whenever we pop a cleanup, we have</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment">  /// to thread all the current branch fixups through it.</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">  /// Fixups are recorded as the Use of the respective branch or</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">  /// switch statement.  The use points to the final destination.</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">  /// When popping out of a cleanup, these uses are threaded through</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">  /// the cleanup and adjusted to point to the new cleanup.</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">  /// Note that branches are allowed to jump into protected scopes</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">  /// in certain situations;  e.g. the following code is legal:</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">  ///     struct A { ~A(); }; // trivial ctor, non-trivial dtor</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">  ///     goto foo;</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">  ///     A a;</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">  ///    foo:</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">  ///     bar();</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<BranchFixup, 8></a> BranchFixups;</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   <span class="keywordtype">char</span> *allocate(<span class="keywordtype">size_t</span> Size);</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>   <span class="keywordtype">void</span> *pushCleanup(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> K, <span class="keywordtype">size_t</span> DataSize);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a25c98ebaae8528f6e22120d87522082f">  304</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a25c98ebaae8528f6e22120d87522082f">EHScopeStack</a>() : StartOfBuffer(0), EndOfBuffer(0), StartOfData(0),</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>                    InnermostNormalCleanup(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ad8c6698a6984c4ecb88d903fba642d98" title="Create a stable reference to the bottom of the EH stack.">stable_end</a>()),</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>                    InnermostEHScope(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ad8c6698a6984c4ecb88d903fba642d98" title="Create a stable reference to the bottom of the EH stack.">stable_end</a>()) {}</div>
+<div class="line"><a name="l00307"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ade479d9621725f0eb34ca565729ffe12">  307</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ade479d9621725f0eb34ca565729ffe12">~EHScopeStack</a>() { <span class="keyword">delete</span>[] StartOfBuffer; }</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>   <span class="comment">// Variadic templates would make this not terrible.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment"></span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">  /// Push a lazily-created cleanup on the stack.</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T></div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a72b8de415713a6e0bab3765472f79ed0">  313</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a72b8de415713a6e0bab3765472f79ed0" title="Push a lazily-created cleanup on the stack.">pushCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>) {</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>     <span class="keywordtype">void</span> *Buffer = pushCleanup(Kind, <span class="keyword">sizeof</span>(T));</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> *Obj = <span class="keyword">new</span>(Buffer) T();</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>     (void) Obj;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment">  /// Push a lazily-created cleanup on the stack.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0></div>
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a9bb4284cb080f3d2ab508ec91d89f133">  321</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a9bb4284cb080f3d2ab508ec91d89f133" title="Push a lazily-created cleanup on the stack.">pushCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, A0 a0) {</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>     <span class="keywordtype">void</span> *Buffer = pushCleanup(Kind, <span class="keyword">sizeof</span>(T));</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> *Obj = <span class="keyword">new</span>(Buffer) T(a0);</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>     (void) Obj;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">  /// Push a lazily-created cleanup on the stack.</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1></div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a0bf18e0ebc5c28ad7ea1880abc02dfe8">  329</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a0bf18e0ebc5c28ad7ea1880abc02dfe8" title="Push a lazily-created cleanup on the stack.">pushCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, A0 a0, A1 a1) {</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>     <span class="keywordtype">void</span> *Buffer = pushCleanup(Kind, <span class="keyword">sizeof</span>(T));</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> *Obj = <span class="keyword">new</span>(Buffer) T(a0, a1);</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>     (void) Obj;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">  /// Push a lazily-created cleanup on the stack.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2></div>
+<div class="line"><a name="l00337"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a2d731aa8a322813d21d4646766337395">  337</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a2d731aa8a322813d21d4646766337395" title="Push a lazily-created cleanup on the stack.">pushCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, A0 a0, A1 a1, A2 a2) {</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     <span class="keywordtype">void</span> *Buffer = pushCleanup(Kind, <span class="keyword">sizeof</span>(T));</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> *Obj = <span class="keyword">new</span>(Buffer) T(a0, a1, a2);</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     (void) Obj;</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>   }</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment"></span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">  /// Push a lazily-created cleanup on the stack.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3></div>
+<div class="line"><a name="l00345"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a84f315ab88edf7a2e104f3d990712650">  345</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a84f315ab88edf7a2e104f3d990712650" title="Push a lazily-created cleanup on the stack.">pushCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, A0 a0, A1 a1, A2 a2, A3 a3) {</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>     <span class="keywordtype">void</span> *Buffer = pushCleanup(Kind, <span class="keyword">sizeof</span>(T));</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> *Obj = <span class="keyword">new</span>(Buffer) T(a0, a1, a2, a3);</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>     (void) Obj;</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>   }</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> <span class="comment"></span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">  /// Push a lazily-created cleanup on the stack.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3, <span class="keyword">class</span> A4></div>
+<div class="line"><a name="l00353"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#acc2d070e0a82e555ef96bb94c41496f1">  353</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#acc2d070e0a82e555ef96bb94c41496f1" title="Push a lazily-created cleanup on the stack.">pushCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) {</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>     <span class="keywordtype">void</span> *Buffer = pushCleanup(Kind, <span class="keyword">sizeof</span>(T));</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a> *Obj = <span class="keyword">new</span>(Buffer) T(a0, a1, a2, a3, a4);</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>     (void) Obj;</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">  359</span>   <span class="comment">// Feel free to add more variants of the following:</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment"></span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">  /// Push a cleanup with non-constant storage requirements on the</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">  /// stack.  The cleanup type must provide an additional static method:</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">  ///   static size_t getExtraSize(size_t);</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">  /// The argument to this method will be the value N, which will also</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">  /// be passed as the first argument to the constructor.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">  /// The data stored in the extra storage must obey the same</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">  /// restrictions as normal cleanup member data.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">  /// The pointer returned from this method is valid until the cleanup</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">  /// stack is modified.</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment"></span>  <span class="keyword">template</span> <<span class="keyword">class</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2></div>
+<div class="line"><a name="l00373"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ae57ac8a6fede1063c45aefb817c3768b">  373</a></span>   T *<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ae57ac8a6fede1063c45aefb817c3768b">pushCleanupWithExtra</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, <span class="keywordtype">size_t</span> N, A0 a0, A1 a1, A2 a2) {</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>     <span class="keywordtype">void</span> *Buffer = pushCleanup(Kind, <span class="keyword">sizeof</span>(T) + T::getExtraSize(N));</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>     <span class="keywordflow">return</span> <span class="keyword">new</span> (Buffer) T(N, a0, a1, a2);</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> </div>
+<div class="line"><a name="l00378"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a52588eaa12db0bc64047d7865a480a6c">  378</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a52588eaa12db0bc64047d7865a480a6c">pushCopyOfCleanup</a>(<a class="code" href="namespaceclang_1_1CodeGen.html#a2186970022771224a80dc9baa7d8ba6f">CleanupKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, <span class="keyword">const</span> <span class="keywordtype">void</span> *<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1Cleanup.html">Cleanup</a>, <span class="keywordtype">size_t</span> Size) {</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>     <span class="keywordtype">void</span> *Buffer = pushCleanup(Kind, Size);</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>     std::memcpy(Buffer, Cleanup, Size);</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="comment"></span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">  /// Pops a cleanup scope off the stack.  This is private to CGCleanup.cpp.</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a4b2d0ee5554a54f32576a140b291272f" title="Pops a cleanup scope off the stack. This is private to CGCleanup.cpp.">popCleanup</a>();</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment"></span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">  /// Push a set of catch handlers on the stack.  The catch is</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">  /// uninitialized and will need to have the given number of handlers</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">  /// set on it.</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHCatchScope.html">EHCatchScope</a> *<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ab438c1f9ff2f8bb5e32953bea6593dd1">pushCatch</a>(<span class="keywordtype">unsigned</span> NumHandlers);</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment"></span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">  /// Pops a catch scope off the stack.  This is private to CGException.cpp.</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#aa86f27ac1d1be1a441b511e9ebf3a1e0" title="Pops a catch scope off the stack. This is private to CGException.cpp.">popCatch</a>();</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment"></span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">  /// Push an exceptions filter on the stack.</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1CodeGen_1_1EHFilterScope.html">EHFilterScope</a> *<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a077f071c099d8de05c05cadd4f49a2d6" title="Push an exceptions filter on the stack.">pushFilter</a>(<span class="keywordtype">unsigned</span> NumFilters);</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment"></span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> <span class="comment">  /// Pops an exceptions filter off the stack.</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a847f83f5e47e66122a6a6ce6df5adcd9" title="Pops an exceptions filter off the stack.">popFilter</a>();</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment"></span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">  /// Push a terminate handler on the stack.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#aefe8303d66c784211dfd9581be62b94b" title="Push a terminate handler on the stack.">pushTerminate</a>();</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment"></span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">  /// Pops a terminate handler off the stack.</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#adccfb817d3fd406a110d5d1b077aa502" title="Pops a terminate handler off the stack.">popTerminate</a>();</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment"></span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">  /// Determines whether the exception-scopes stack is empty.</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a89f9cda5ecb4d3529515fe45cbe70f3f">  407</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a89f9cda5ecb4d3529515fe45cbe70f3f" title="Determines whether the exception-scopes stack is empty.">empty</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> StartOfData == EndOfBuffer; }</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_1CodeGen_1_1EHScopeStack.html#a7ce729e05a89eccfc86ca4d73f2697c0">  409</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a7ce729e05a89eccfc86ca4d73f2697c0">requiresLandingPad</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>     <span class="keywordflow">return</span> InnermostEHScope != <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ad8c6698a6984c4ecb88d903fba642d98" title="Create a stable reference to the bottom of the EH stack.">stable_end</a>();</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   }</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment"></span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> <span class="comment">  /// Determines whether there are any normal cleanups on the stack.</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a28b683a176846b933771f7c768c99002">  414</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a28b683a176846b933771f7c768c99002" title="Determines whether there are any normal cleanups on the stack.">hasNormalCleanups</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>     <span class="keywordflow">return</span> InnermostNormalCleanup != <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ad8c6698a6984c4ecb88d903fba642d98" title="Create a stable reference to the bottom of the EH stack.">stable_end</a>();</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> <span class="comment"></span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">  /// Returns the innermost normal cleanup on the stack, or</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment">  /// stable_end() if there are no normal cleanups.</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ae0b05f9358df39eaa0458255d311497c">  420</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ae0b05f9358df39eaa0458255d311497c">getInnermostNormalCleanup</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>     <span class="keywordflow">return</span> InnermostNormalCleanup;</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>   stable_iterator <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a3b4881b44c481f2f1335b2ea1976460c">getInnermostActiveNormalCleanup</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ad727a3cc92638b4bbe253233f8fb2159">  425</a></span>   <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ad727a3cc92638b4bbe253233f8fb2159">getInnermostEHScope</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>     <span class="keywordflow">return</span> InnermostEHScope;</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>   }</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>   stable_iterator <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ab7c8a95aa24a9554d1e38179563f118b">getInnermostActiveEHScope</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> <span class="comment"></span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment">  /// An unstable reference to a scope-stack depth.  Invalidated by</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">  /// pushes but not pops.</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment"></span>  <span class="keyword">class </span>iterator;</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment"></span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">  /// Returns an iterator pointing to the innermost EH scope.</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment"></span>  iterator <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#af8e0bac242014da54b72fb5a7b797343" title="Returns an iterator pointing to the innermost EH scope.">begin</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="comment"></span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment">  /// Returns an iterator pointing to the outermost EH scope.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> <span class="comment"></span>  iterator <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ab72d4816022fab5b07c32df71686da38" title="Returns an iterator pointing to the outermost EH scope.">end</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment"></span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">  /// Create a stable reference to the top of the EH stack.  The</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> <span class="comment">  /// returned reference is valid until that scope is popped off the</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="comment">  /// stack.</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ab05f975e8eb3a12ca85225dc6da12684">  444</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ab05f975e8eb3a12ca85225dc6da12684">stable_begin</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a>(EndOfBuffer - StartOfData);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment">  /// Create a stable reference to the bottom of the EH stack.</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ad8c6698a6984c4ecb88d903fba642d98">  449</a></span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#ad8c6698a6984c4ecb88d903fba642d98" title="Create a stable reference to the bottom of the EH stack.">stable_end</a>() {</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack_1_1stable__iterator.html">stable_iterator</a>(0);</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>   }</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> <span class="comment"></span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> <span class="comment">  /// Translates an iterator into a stable_iterator.</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="comment"></span>  stable_iterator <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#aa011b75d5b6ee1b168e0289d2d2c5a8f" title="Translates an iterator into a stable_iterator.">stabilize</a>(iterator it) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> <span class="comment"></span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="comment">  /// Turn a stable reference to a scope depth into a unstable pointer</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> <span class="comment">  /// to the EH stack.</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="comment"></span>  iterator <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#afec681080896677a7d0599191da3e1ae">find</a>(stable_iterator save) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> <span class="comment"></span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> <span class="comment">  /// Removes the cleanup pointed to by the given stable_iterator.</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a83c8f7b3fd43f129239a2e70b8c730fc" title="Removes the cleanup pointed to by the given stable_iterator.">removeCleanup</a>(stable_iterator save);</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment"></span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment">  /// Add a branch fixup to the current cleanup scope.</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a80401fdba38a24d495f4f86f07590358">  464</a></span> <span class="comment"></span>  <a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html">BranchFixup</a> &<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a80401fdba38a24d495f4f86f07590358" title="Add a branch fixup to the current cleanup scope.">addBranchFixup</a>() {</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>     assert(<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a28b683a176846b933771f7c768c99002" title="Determines whether there are any normal cleanups on the stack.">hasNormalCleanups</a>() && <span class="stringliteral">"adding fixup in scope without cleanups"</span>);</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>     BranchFixups.push_back(<a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html">BranchFixup</a>());</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>     <span class="keywordflow">return</span> BranchFixups.back();</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> </div>
+<div class="line"><a name="l00470"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a9ceaad65ee45d12459ebac4befdfb9e1">  470</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a9ceaad65ee45d12459ebac4befdfb9e1">getNumBranchFixups</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> BranchFixups.size(); }</div>
+<div class="line"><a name="l00471"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a8ca4f8314553b1a8b95df8419c4d69a0">  471</a></span>   <a class="code" href="structclang_1_1CodeGen_1_1BranchFixup.html">BranchFixup</a> &<a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a8ca4f8314553b1a8b95df8419c4d69a0">getBranchFixup</a>(<span class="keywordtype">unsigned</span> I) {</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>     assert(I < <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#a9ceaad65ee45d12459ebac4befdfb9e1">getNumBranchFixups</a>());</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>     <span class="keywordflow">return</span> BranchFixups[I];</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="comment"></span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> <span class="comment">  /// Pops lazily-removed fixups from the end of the list.  This</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> <span class="comment">  /// should only be called by procedures which have just popped a</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">  /// cleanup or resolved one or more fixups.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#aca336d524e29d1234049ab164934c9bd">popNullFixups</a>();</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment"></span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">  /// Clears the branch-fixups list.  This should only be called by</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="comment">  /// ResolveAllBranchFixups.</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"><a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#adabd1f2e7bcd390652d995122b42c42b">  483</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CodeGen_1_1EHScopeStack.html#adabd1f2e7bcd390652d995122b42c42b">clearFixups</a>() { BranchFixups.clear(); }</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> };</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> </div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> } <span class="comment">// namespace CodeGen</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> } <span class="comment">// namespace clang</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:35 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/Edit_2Rewriters_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Edit_2Rewriters_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Edit_2Rewriters_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Edit_2Rewriters_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,120 @@
+<!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: Rewriters.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_4868472fca72dca0588e8eee4f00b3f7.html">Edit</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Edit/Rewriters.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Edit_2Rewriters_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">//===--- Rewriters.h - Rewritings     ---------------------------*- 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_EDIT_REWRITERS_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_EDIT_REWRITERS_H</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor"></span><span class="preprocessor">#include "llvm/ADT/SmallVector.h"</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="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>   <span class="keyword">class </span>ObjCMessageExpr;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>   <span class="keyword">class </span>ObjCMethodDecl;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>   <span class="keyword">class </span>ObjCInterfaceDecl;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>   <span class="keyword">class </span>ObjCProtocolDecl;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>   <span class="keyword">class </span>NSAPI;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>   <span class="keyword">class </span>EnumDecl;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>   <span class="keyword">class </span>TypedefDecl;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>   <span class="keyword">class </span>ParentMap;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">namespace </span>edit {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   <span class="keyword">class </span>Commit;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1edit.html#a2012fb9ac992dc428befd92a1eba5f4b">rewriteObjCRedundantCallWithLiteral</a>(<span class="keyword">const</span> ObjCMessageExpr *Msg,</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>                                          <span class="keyword">const</span> NSAPI &NS, Commit &commit);</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1edit.html#a2ba25cf81c6a9cd3735125ca624ec82f">rewriteToObjCLiteralSyntax</a>(<span class="keyword">const</span> ObjCMessageExpr *Msg,</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>                                 <span class="keyword">const</span> NSAPI &NS, Commit &commit,</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>                                 <span class="keyword">const</span> ParentMap *PMap);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1edit.html#ab61d334f172d68bfddde6d95fe5e48ea">rewriteToObjCSubscriptSyntax</a>(<span class="keyword">const</span> ObjCMessageExpr *Msg,</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>                                   <span class="keyword">const</span> NSAPI &NS, Commit &commit);</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> </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> }  <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:58 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