[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/CommonBugCategories_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonBugCategories_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonBugCategories_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonBugCategories_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,99 @@
+<!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: CommonBugCategories.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_8c061bf4f1cf580e717ceaf4321c4465.html">Core</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CommonBugCategories.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CommonBugCategories_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">//=--- CommonBugCategories.cpp - Provides common issue categories -*- 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">#include "<a class="code" href="CommonBugCategories_8h.html">clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">// Common strings used for the "category" of many static analyzer issues.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="keyword">namespace </span>clang { <span class="keyword">namespace </span>ento { <span class="keyword">namespace </span>categories {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="code" href="namespaceclang_1_1ento_1_1categories.html#a581ad8dfd250561e543f31d64a6e8b6b">   15</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a581ad8dfd250561e543f31d64a6e8b6b">CoreFoundationObjectiveC</a> = <span class="stringliteral">"Core Foundation/Objective-C"</span>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="code" href="namespaceclang_1_1ento_1_1categories.html#a73df22143fb280f9ac68a5803720c597">   16</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a73df22143fb280f9ac68a5803720c597">LogicError</a> = <span class="stringliteral">"Logic error"</span>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="code" href="namespaceclang_1_1ento_1_1categories.html#a73a8ae06a5011460a3d06e1ee6e9d6b6">   17</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a73a8ae06a5011460a3d06e1ee6e9d6b6">MemoryCoreFoundationObjectiveC</a> =</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>   <span class="stringliteral">"Memory (Core Foundation/Objective-C)"</span>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="code" href="namespaceclang_1_1ento_1_1categories.html#a54df5af5f5165c3ce2daf6c8ebdfc64d">   19</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a54df5af5f5165c3ce2daf6c8ebdfc64d">UnixAPI</a> = <span class="stringliteral">"Unix API"</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> }}}</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonBugCategories_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonBugCategories_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonBugCategories_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonBugCategories_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,104 @@
+<!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: CommonBugCategories.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_2ba7a218f06aeb0c1cc9ef1662abecef.html">BugReporter</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CommonBugCategories.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CommonBugCategories_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">//=--- CommonBugCategories.h - Provides common issue categories -*- 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_STATIC_ANALYZER_BUG_CATEGORIES_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_STATIC_ANALYZER_BUG_CATEGORIES_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="comment">// Common strings used for the "category" of many static analyzer issues.</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"><a class="code" href="namespaceclang_1_1ento_1_1categories.html">   16</a></span>     <span class="keyword">namespace </span>categories {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>       <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a581ad8dfd250561e543f31d64a6e8b6b">CoreFoundationObjectiveC</a>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>       <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a73df22143fb280f9ac68a5803720c597">LogicError</a>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>       <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a73a8ae06a5011460a3d06e1ee6e9d6b6">MemoryCoreFoundationObjectiveC</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>       <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a54df5af5f5165c3ce2daf6c8ebdfc64d">UnixAPI</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>     }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>   }</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,159 @@
+<!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: CommonOptionsParser.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_14ab871e308b37f9042717085145c002.html">Tooling</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CommonOptionsParser.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CommonOptionsParser_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">//===--- CommonOptionsParser.cpp - common options for clang tools ---------===//</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 CommonOptionsParser class used to parse common</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  command-line options for clang tools, so that they can be run as separate</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//  command-line applications with a consistent common interface for handling</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//  compilation database and input files.</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> <span class="comment">//  It provides a common subset of command-line options, common algorithm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment">//  for locating a compilation database and source files, and help messages</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment">//  for the basic command-line interface.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="comment">//  It creates a CompilationDatabase and reads common command-line options.</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">//  This class uses the Clang Tooling infrastructure, see</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment">//    http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">//  for details on setting it up with LLVM source tree.</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "llvm/Support/CommandLine.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "<a class="code" href="CommonOptionsParser_8h.html">clang/Tooling/CommonOptionsParser.h</a>"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "<a class="code" href="Tooling_8h.html">clang/Tooling/Tooling.h</a>"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="keyword">using namespace </span>clang::tooling;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="keyword">using namespace </span>llvm;</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">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> <a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#af6a3cb3b487843823ca6e9b051f0b246">CommonOptionsParser::HelpMessage</a> =</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>     <span class="stringliteral">"\n"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>     <span class="stringliteral">"-p <build-path> is used to read a compile command database.\n"</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     <span class="stringliteral">"\n"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     <span class="stringliteral">"\tFor example, it can be a CMake build directory in which a file named\n"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>     <span class="stringliteral">"\tcompile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON\n"</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>     <span class="stringliteral">"\tCMake option to get this output). When no build path is specified,\n"</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>     <span class="stringliteral">"\ta search for compile_commands.json will be attempted through all\n"</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>     <span class="stringliteral">"\tparent paths of the first input file . See:\n"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     <span class="stringliteral">"\thttp://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an\n"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>     <span class="stringliteral">"\texample of setting up Clang Tooling on a source tree.\n"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>     <span class="stringliteral">"\n"</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>     <span class="stringliteral">"<source0> ... specify the paths of source files. These paths are\n"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>     <span class="stringliteral">"\tlooked up in the compile command database. If the path of a file is\n"</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>     <span class="stringliteral">"\tabsolute, it needs to point into CMake's source tree. If the path is\n"</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>     <span class="stringliteral">"\trelative, the current working directory needs to be in the CMake\n"</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>     <span class="stringliteral">"\tsource tree and the file must be in a subdirectory of the current\n"</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>     <span class="stringliteral">"\tworking directory. \"./\" prefixes in the relative files will be\n"</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="stringliteral">"\tautomatically removed, but the rest of a relative path must be a\n"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     <span class="stringliteral">"\tsuffix of a path in the compile command database.\n"</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#a25f4718183a7795db9abf74685c9f8fb">   56</a></span> <a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#a25f4718183a7795db9abf74685c9f8fb" title="Parses command-line, initializes a compilation database. This constructor can change argc and argv co...">CommonOptionsParser::CommonOptionsParser</a>(<span class="keywordtype">int</span> &argc, <span class="keyword">const</span> <span class="keywordtype">char</span> **argv,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>                                          <span class="keyword">const</span> <span class="keywordtype">char</span> *Overview) {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   <span class="keyword">static</span> cl::opt<std::string> BuildPath(</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>       <span class="stringliteral">"p"</span>, cl::desc(<span class="stringliteral">"Build path"</span>), cl::Optional);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   <span class="keyword">static</span> cl::list<std::string> SourcePaths(</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>       cl::Positional, cl::desc(<span class="stringliteral">"<source0> [... <sourceN>]"</span>), cl::OneOrMore);</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>   Compilations.reset(<a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a91e2eab2e10f31074aebaed1ed18c791" title="Creates a FixedCompilationDatabase from the arguments after "&ndash;".">FixedCompilationDatabase::loadFromCommandLine</a>(argc,</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>                                                                    argv));</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   cl::ParseCommandLineOptions(argc, argv, Overview);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   SourcePathList = SourcePaths;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="keywordflow">if</span> (!Compilations) {</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>     std::string ErrorMessage;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>     <span class="keywordflow">if</span> (!BuildPath.empty()) {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>       Compilations.reset(<a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a06648beb4d3038dad6cd52fe06b0a028" title="Tries to detect a compilation database location and load it.">CompilationDatabase::autoDetectFromDirectory</a>(</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>                               BuildPath, ErrorMessage));</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>       Compilations.reset(<a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a0519f5963f3bb5acb95fa046e03d82bc" title="Tries to detect a compilation database location and load it.">CompilationDatabase::autoDetectFromSource</a>(</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>                               SourcePaths[0], ErrorMessage));</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     }</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     <span class="keywordflow">if</span> (!Compilations)</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>       llvm::report_fatal_error(ErrorMessage);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,250 @@
+<!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: CommonOptionsParser.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_14ab871e308b37f9042717085145c002.html">Tooling</a></li><li class="navelem"><a class="el" href="dir_88d92a3518b6d6dcb8dd1cee7c911282.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CommonOptionsParser.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CommonOptionsParser_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/Tooling/Release+Asserts/CommonOptionsParser.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/Release+Asserts/CommonOptionsParser.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  CommonOptionsParser.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.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/Support/type_traits.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/CommonOptionsParser.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/CompilationDatabase.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/Tooling.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Util.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendAction.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendOptions.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/CommandLineSourceLoc.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/ArgumentsAdjusters.h</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h:</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> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</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> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</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> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/CommonOptionsParser.h:</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/CompilationDatabase.h:</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/Tooling.h:</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> /home/tstellar/llvm/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/include/llvm/Support/TimeValue.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/include/llvm/Support/system_error.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/Tooling/../../include/clang/Driver/Util.h:</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendAction.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/Tooling/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/ObjCRuntime.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/tools/clang/lib/Tooling/../../include/clang/Basic/VersionTuple.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/Optional.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/Triple.h:</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/<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="l00154"></a><span class="lineno">  154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/<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="l00156"></a><span class="lineno">  156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Sanitizers.def:</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/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendOptions.h:</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/CommandLineSourceLoc.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/raw_ostream.h:</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/ArgumentsAdjusters.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CommonOptionsParser_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,168 @@
+<!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: CommonOptionsParser.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_595f3151679c28f47cf4097124b3607a.html">Tooling</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CommonOptionsParser.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CommonOptionsParser_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">//===- CommonOptionsParser.h - common options for clang tools -*- 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 CommonOptionsParser class used to parse common</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  command-line options for clang tools, so that they can be run as separate</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//  command-line applications with a consistent common interface for handling</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//  compilation database and input files.</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> <span class="comment">//  It provides a common subset of command-line options, common algorithm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment">//  for locating a compilation database and source files, and help messages</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment">//  for the basic command-line interface.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="comment">//  It creates a CompilationDatabase and reads common command-line options.</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">//  This class uses the Clang Tooling infrastructure, see</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment">//    http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">//  for details on setting it up with LLVM source tree.</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#ifndef LLVM_TOOLS_CLANG_INCLUDE_CLANG_TOOLING_COMMONOPTIONSPARSER_H</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_TOOLS_CLANG_INCLUDE_CLANG_TOOLING_COMMONOPTIONSPARSER_H</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "<a class="code" href="CompilationDatabase_8h.html">clang/Tooling/CompilationDatabase.h</a>"</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>clang {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">namespace </span>tooling {<span class="comment"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">/// \brief A parser for options common to all command-line Clang tools.</span></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">/// Parses a common subset of command-line arguments, locates and loads a</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">/// compilation commands database and runs a tool with user-specified action. It</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">/// also contains a help message for the common command-line options.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">/// An example of usage:</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">/// #include "clang/Frontend/FrontendActions.h"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">/// #include "clang/Tooling/CommonOptionsParser.h"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">/// #include "llvm/Support/CommandLine.h"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">/// using namespace clang::tooling;</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">/// using namespace llvm;</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">/// static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage);</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">/// static cl::extrahelp MoreHelp("\nMore help text...");</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">/// static cl:opt<bool> YourOwnOption(...);</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">///</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">/// int main(int argc, const char **argv) {</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">///   CommonOptionsParser OptionsParser(argc, argv);</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">///   ClangTool Tool(OptionsParser.getCompilations(),</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">///                  OptionsParser.getSourcePathListi());</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">///   return Tool.run(newFrontendActionFactory<clang::SyntaxOnlyAction>());</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">/// }</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html">   61</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html" title="A parser for options common to all command-line Clang tools.">CommonOptionsParser</a> {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">  /// \brief Parses command-line, initializes a compilation database.</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">  /// This constructor can change argc and argv contents, e.g. consume</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">  /// command-line options used for creating FixedCompilationDatabase.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">  /// This constructor exits program in case of error.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment"></span>  <a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#a25f4718183a7795db9abf74685c9f8fb" title="Parses command-line, initializes a compilation database. This constructor can change argc and argv co...">CommonOptionsParser</a>(<span class="keywordtype">int</span> &argc, <span class="keyword">const</span> <span class="keywordtype">char</span> **argv, <span class="keyword">const</span> <span class="keywordtype">char</span> *Overview = 0);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">  /// Returns a reference to the loaded compilations database.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#a8a0268f7d528514c7737faaa9c91f168">   70</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> &<a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#a8a0268f7d528514c7737faaa9c91f168" title="Returns a reference to the loaded compilations database.">getCompilations</a>() {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     <span class="keywordflow">return</span> *Compilations;</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="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  /// Returns a list of source file paths to process.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#a1f45558bd6070c3af66d62c9d69cfb4a">   75</a></span> <span class="comment"></span>  std::vector<std::string> <a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#a1f45558bd6070c3af66d62c9d69cfb4a" title="Returns a list of source file paths to process.">getSourcePathList</a>() {</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     <span class="keywordflow">return</span> SourcePathList;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   }</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#af6a3cb3b487843823ca6e9b051f0b246">   79</a></span>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> <a class="code" href="classclang_1_1tooling_1_1CommonOptionsParser.html#af6a3cb3b487843823ca6e9b051f0b246">HelpMessage</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<CompilationDatabase></a> Compilations;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   std::vector<std::string> SourcePathList;</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="comment">// namespace tooling</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> }  <span class="comment">// namespace clang</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="preprocessor">#endif  // LLVM_TOOLS_CLANG_INCLUDE_CLANG_TOOLING_COMMONOPTIONSPARSER_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabasePluginRegistry_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabasePluginRegistry_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabasePluginRegistry_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabasePluginRegistry_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,106 @@
+<!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: CompilationDatabasePluginRegistry.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_595f3151679c28f47cf4097124b3607a.html">Tooling</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilationDatabasePluginRegistry.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilationDatabasePluginRegistry_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">//===--- CompilationDatabasePluginRegistry.h - ------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#ifndef LLVM_CLANG_TOOLING_COMPILATION_DATABASE_PLUGIN_REGISTRY_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_TOOLING_COMPILATION_DATABASE_PLUGIN_REGISTRY_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="CompilationDatabase_8h.html">clang/Tooling/CompilationDatabase.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "llvm/Support/Registry.h"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">namespace </span>tooling {</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="namespaceclang_1_1tooling.html#a86cedd09c87896789cb6e3bf67d327ce">   19</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1tooling_1_1CompilationDatabasePlugin.html" title="Interface for compilation database plugins.">CompilationDatabasePlugin</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="keyword">typedef</span> llvm::Registry<CompilationDatabasePlugin></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>     <a class="code" href="namespaceclang_1_1tooling.html#a86cedd09c87896789cb6e3bf67d327ce">CompilationDatabasePluginRegistry</a>;</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="comment">// end namespace tooling</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#endif // LLVM_CLANG_TOOLING_COMPILATION_DATABASE_PLUGIN_REGISTRY_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,406 @@
+<!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: CompilationDatabase.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_14ab871e308b37f9042717085145c002.html">Tooling</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilationDatabase.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilationDatabase_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">//===--- CompilationDatabase.cpp - ----------------------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file contains implementations of the CompilationDatabase base class</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  and the FixedCompilationDatabase.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="CompilationDatabase_8h.html">clang/Tooling/CompilationDatabase.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="CompilationDatabasePluginRegistry_8h.html">clang/Tooling/CompilationDatabasePluginRegistry.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="Tooling_8h.html">clang/Tooling/Tooling.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "llvm/ADT/SmallString.h"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/Support/Path.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/Support/system_error.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include <sstream></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="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="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="Action_8h.html">clang/Driver/Action.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="Driver_8h.html">clang/Driver/Driver.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="DriverDiagnostic_8h.html">clang/Driver/DriverDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "<a class="code" href="Job_8h.html">clang/Driver/Job.h</a>"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "<a class="code" href="Compilation_8h.html">clang/Driver/Compilation.h</a>"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "<a class="code" href="TextDiagnosticPrinter_8h.html">clang/Frontend/TextDiagnosticPrinter.h</a>"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "llvm/Support/Host.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include "llvm/Option/Arg.h"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">namespace </span>tooling {</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a4668dc3183c8b0bc90d6a49f7399aecd">   36</a></span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a4668dc3183c8b0bc90d6a49f7399aecd">CompilationDatabase::~CompilationDatabase</a>() {}</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *</div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a8f96205d22fd4da418c8efe460c5fd56">   39</a></span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a8f96205d22fd4da418c8efe460c5fd56" title="Loads a compilation database from a build directory.">CompilationDatabase::loadFromDirectory</a>(StringRef BuildDirectory,</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>                                        std::string &ErrorMessage) {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   std::stringstream ErrorStream;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="keywordflow">for</span> (CompilationDatabasePluginRegistry::iterator</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>        It = CompilationDatabasePluginRegistry::begin(),</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>        Ie = CompilationDatabasePluginRegistry::end();</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>        It != Ie; ++It) {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>     std::string DatabaseErrorMessage;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>     <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<CompilationDatabasePlugin></a> Plugin(It->instantiate());</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *DB =</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>         Plugin-><a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a8f96205d22fd4da418c8efe460c5fd56" title="Loads a compilation database from a build directory.">loadFromDirectory</a>(BuildDirectory, DatabaseErrorMessage))</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>       <span class="keywordflow">return</span> DB;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>       ErrorStream << It->getName() << <span class="stringliteral">": "</span> << DatabaseErrorMessage << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   }</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   ErrorMessage = ErrorStream.str();</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>   <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="keyword">static</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="namespaceclang_1_1tooling.html#a5ffb4bfc6377f1d420ec7c54203b2df8">   59</a></span> <a class="code" href="namespaceclang_1_1tooling.html#a5ffb4bfc6377f1d420ec7c54203b2df8">findCompilationDatabaseFromDirectory</a>(StringRef Directory,</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>                                      std::string &ErrorMessage) {</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   std::stringstream ErrorStream;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="keywordtype">bool</span> HasErrorMessage = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <span class="keywordflow">while</span> (!Directory.empty()) {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     std::string LoadErrorMessage;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *DB =</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>            <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a8f96205d22fd4da418c8efe460c5fd56" title="Loads a compilation database from a build directory.">CompilationDatabase::loadFromDirectory</a>(Directory, LoadErrorMessage))</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>       <span class="keywordflow">return</span> DB;</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> (!HasErrorMessage) {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>       ErrorStream << <span class="stringliteral">"No compilation database found in "</span> << Directory.str()</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>                   << <span class="stringliteral">" or any parent directory\n"</span> << LoadErrorMessage;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>       HasErrorMessage = <span class="keyword">true</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> </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     Directory = llvm::sys::path::parent_path(Directory);</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>   ErrorMessage = ErrorStream.str();</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> CompilationDatabase *</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a0519f5963f3bb5acb95fa046e03d82bc">   83</a></span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a0519f5963f3bb5acb95fa046e03d82bc" title="Tries to detect a compilation database location and load it.">CompilationDatabase::autoDetectFromSource</a>(StringRef SourceFile,</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>                                           std::string &ErrorMessage) {</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<1024></a> AbsolutePath(<a class="code" href="namespaceclang_1_1tooling.html#ad78472e30b8e8722145485caa2742f54" title="Returns the absolute path of File, by prepending it with the current directory if File is not absolut...">getAbsolutePath</a>(SourceFile));</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   StringRef Directory = llvm::sys::path::parent_path(AbsolutePath);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>   <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *DB = <a class="code" href="namespaceclang_1_1tooling.html#a5ffb4bfc6377f1d420ec7c54203b2df8">findCompilationDatabaseFromDirectory</a>(Directory,</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>                                                                  ErrorMessage);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   <span class="keywordflow">if</span> (!DB)</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     ErrorMessage = (<span class="stringliteral">"Could not auto-detect compilation database for file \""</span> +</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>                    SourceFile + <span class="stringliteral">"\"\n"</span> + ErrorMessage).str();</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="keywordflow">return</span> DB;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> }</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a06648beb4d3038dad6cd52fe06b0a028">   98</a></span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a06648beb4d3038dad6cd52fe06b0a028" title="Tries to detect a compilation database location and load it.">CompilationDatabase::autoDetectFromDirectory</a>(StringRef SourceDir,</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>                                              std::string &ErrorMessage) {</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<1024></a> AbsolutePath(<a class="code" href="namespaceclang_1_1tooling.html#ad78472e30b8e8722145485caa2742f54" title="Returns the absolute path of File, by prepending it with the current directory if File is not absolut...">getAbsolutePath</a>(SourceDir));</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *DB = <a class="code" href="namespaceclang_1_1tooling.html#a5ffb4bfc6377f1d420ec7c54203b2df8">findCompilationDatabaseFromDirectory</a>(AbsolutePath,</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>                                                                  ErrorMessage);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <span class="keywordflow">if</span> (!DB)</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     ErrorMessage = (<span class="stringliteral">"Could not auto-detect compilation database from directory \""</span> +</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>                    SourceDir + <span class="stringliteral">"\"\n"</span> + ErrorMessage).str();</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   <span class="keywordflow">return</span> DB;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> }</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CompilationDatabasePlugin.html#a1c2904ea404d25d18acd250d8792e4de">  111</a></span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabasePlugin.html#a1c2904ea404d25d18acd250d8792e4de">CompilationDatabasePlugin::~CompilationDatabasePlugin</a>() {}</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">// Helper for recursively searching through a chain of actions and collecting</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">// all inputs, direct and indirect, of compile jobs.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html">  115</a></span> <span class="keyword">struct </span><a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html">CompileJobAnalyzer</a> {</div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html#a64f006841456704cabeaad170c449371">  116</a></span>   <span class="keywordtype">void</span> <a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html#a64f006841456704cabeaad170c449371">run</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">driver::Action</a> *A) {</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>     runImpl(A, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   }</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html#a89c3be9e938cfb090078a7e01cd557d1">  120</a></span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::string, 2></a> <a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html#a89c3be9e938cfb090078a7e01cd557d1">Inputs</a>;</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="keyword">private</span>:</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="keywordtype">void</span> runImpl(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">driver::Action</a> *A, <span class="keywordtype">bool</span> Collect) {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>     <span class="keywordtype">bool</span> CollectChildren = Collect;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>     <span class="keywordflow">switch</span> (A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>()) {</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aa9cea83154785da25099480d5bc2ab13">driver::Action::CompileJobClass</a>:</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>       CollectChildren = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700afc7c4617f3ea06d0c663703d0162a9f6">driver::Action::InputClass</a>: {</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>       <span class="keywordflow">if</span> (Collect) {</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1InputAction.html">driver::InputAction</a> *IA = cast<driver::InputAction>(A);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>         <a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html#a89c3be9e938cfb090078a7e01cd557d1">Inputs</a>.push_back(IA-><a class="code" href="classclang_1_1driver_1_1InputAction.html#a596cca4982b169ac8b610b88bf779497">getInputArg</a>().getSpelling());</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>       }</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>     } <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>       <span class="comment">// Don't care about others</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>       ;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>     }</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>     <span class="keywordflow">for</span> (driver::ActionList::const_iterator I = A-><a class="code" href="classclang_1_1driver_1_1Action.html#a5f5f713cfeadf8708788ccfb88dd001e">begin</a>(), E = A-><a class="code" href="classclang_1_1driver_1_1Action.html#abef57633338ff7105f7d8ce4a954a2a8">end</a>();</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>          I != E; ++I)</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>       runImpl(*I, CollectChildren);</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="comment">// Special DiagnosticConsumer that looks for warn_drv_input_file_unused</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">// diagnostics from the driver and collects the option strings for those unused</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">// options.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html">  152</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html">UnusedInputDiagConsumer</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1DiagnosticConsumer.html" title="Abstract interface, implemented by clients of the front-end, which formats and prints fully processed...">DiagnosticConsumer</a> {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#aa7c579549933edf1af6a67e150317932">  154</a></span>   <a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#aa7c579549933edf1af6a67e150317932">UnusedInputDiagConsumer</a>() : <a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a507de3e778b0c8992ad928bd9ada55f6">Other</a>(0) {}</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <span class="comment">// Useful for debugging, chain diagnostics to another consumer after</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>   <span class="comment">// recording for our own purposes.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#aba3d79fcea678c44695b28de7062d2ae">  158</a></span>   <a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#aba3d79fcea678c44695b28de7062d2ae">UnusedInputDiagConsumer</a>(<a class="code" href="classclang_1_1DiagnosticConsumer.html" title="Abstract interface, implemented by clients of the front-end, which formats and prints fully processed...">DiagnosticConsumer</a> *<a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a507de3e778b0c8992ad928bd9ada55f6">Other</a>) : Other(Other) {}</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a07bb7f44790b449d7bf288798bb018f6">  160</a></span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a07bb7f44790b449d7bf288798bb018f6" title="Handle this diagnostic, reporting it to the user or capturing it to a log as needed.">HandleDiagnostic</a>(<a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0" title="The level of the diagnostic, after it has been through mapping.">DiagnosticsEngine::Level</a> DiagLevel,</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>                                 <span class="keyword">const</span> <a class="code" href="classclang_1_1Diagnostic.html">Diagnostic</a> &Info) LLVM_OVERRIDE {</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>     <span class="keywordflow">if</span> (Info.getID() == clang::diag::warn_drv_input_file_unused) {</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>       <span class="comment">// Arg 1 for this diagnostic is the option that didn't get used.</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>       <a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a6dc208773ce571835015aa55cfc6d529">UnusedInputs</a>.push_back(Info.getArgStdStr(0));</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     }</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a507de3e778b0c8992ad928bd9ada55f6">Other</a>)</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>       <a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a507de3e778b0c8992ad928bd9ada55f6">Other</a>-><a class="code" href="classclang_1_1DiagnosticConsumer.html#a4e2f11fcedb8495fe184b8adbd589708" title="Handle this diagnostic, reporting it to the user or capturing it to a log as needed.">HandleDiagnostic</a>(DiagLevel, Info);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   }</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a507de3e778b0c8992ad928bd9ada55f6">  170</a></span>   <a class="code" href="classclang_1_1DiagnosticConsumer.html" title="Abstract interface, implemented by clients of the front-end, which formats and prints fully processed...">DiagnosticConsumer</a> *<a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a507de3e778b0c8992ad928bd9ada55f6">Other</a>;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a6dc208773ce571835015aa55cfc6d529">  171</a></span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::string, 2></a> <a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a6dc208773ce571835015aa55cfc6d529">UnusedInputs</a>;</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> <span class="comment">// Unary functor for asking "Given a StringRef S1, does there exist a string</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">// S2 in Arr where S1 == S2?"</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1MatchesAny.html">  176</a></span> <span class="keyword">struct </span><a class="code" href="structclang_1_1tooling_1_1MatchesAny.html">MatchesAny</a> {</div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1MatchesAny.html#a59ea06306e0b2080aa65eb7651fc2f05">  177</a></span>   <a class="code" href="structclang_1_1tooling_1_1MatchesAny.html#a59ea06306e0b2080aa65eb7651fc2f05">MatchesAny</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::string></a> Arr) : Arr(Arr) {}</div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1MatchesAny.html#a131b5146b611112d79cbd960a6627329">  178</a></span>   <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1tooling_1_1MatchesAny.html#a131b5146b611112d79cbd960a6627329">operator() </a>(StringRef <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     <span class="keywordflow">for</span> (<span class="keyword">const</span> std::string *I = Arr.begin(), *E = Arr.end(); I != E; ++I)</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>       <span class="keywordflow">if</span> (*I == S)</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>   <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::string></a> Arr;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> };</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment"></span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">/// \brief Strips any positional args and possible argv[0] from a command-line</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">/// provided by the user to construct a FixedCompilationDatabase.</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">/// FixedCompilationDatabase requires a command line to be in this format as it</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">/// constructs the command line for each file by appending the name of the file</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">/// to be compiled. FixedCompilationDatabase also adds its own argv[0] to the</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">/// start of the command line although its value is not important as it's just</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">/// ignored by the Driver invoked by the ClangTool using the</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">/// FixedCompilationDatabase.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">/// FIXME: This functionality should probably be made available by</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">/// clang::driver::Driver although what the interface should look like is not</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">/// clear.</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">/// \param[in] Args Args as provided by the user.</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">/// \return Resulting stripped command line.</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">///          \li true if successful.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">///          \li false if \c Args cannot be used for compilation jobs (e.g.</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">///          contains an option like -E or -version).</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="code" href="namespaceclang_1_1tooling.html#a1b612e54b78a4a94b7c2ed03bb32df09">  207</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1tooling.html#a1b612e54b78a4a94b7c2ed03bb32df09" title="Strips any positional args and possible argv[0] from a command-line provided by the user to construct...">stripPositionalArgs</a>(std::vector<const char *> <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>,</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>                          std::vector<std::string> &Result) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<DiagnosticOptions></a> DiagOpts = <span class="keyword">new</span> <a class="code" href="classclang_1_1DiagnosticOptions.html" title="Options for controlling the compiler diagnostics engine.">DiagnosticOptions</a>();</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>   <a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html">UnusedInputDiagConsumer</a> DiagClient;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>   <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> Diagnostics(</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>       <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<clang::DiagnosticIDs></a>(<span class="keyword">new</span> <a class="code" href="classclang_1_1DiagnosticIDs.html" title="Used for handling and querying diagnostic IDs.">DiagnosticIDs</a>()),</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>       &*DiagOpts, &DiagClient, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   <span class="comment">// Neither clang executable nor default image name are required since the</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   <span class="comment">// jobs the driver builds will not be executed.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<driver::Driver></a> NewDriver(<span class="keyword">new</span> <a class="code" href="classclang_1_1driver_1_1Driver.html">driver::Driver</a>(</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>       <span class="comment">/* ClangExecutable= */</span> <span class="stringliteral">""</span>, llvm::sys::getDefaultTargetTriple(),</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>       <span class="comment">/* DefaultImageName= */</span> <span class="stringliteral">""</span>, Diagnostics));</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   NewDriver->setCheckInputsExist(<span class="keyword">false</span>);</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">// This becomes the new argv[0]. The value is actually not important as it</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>   <span class="comment">// isn't used for invoking Tools.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   Args.insert(Args.begin(), <span class="stringliteral">"clang-tool"</span>);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   <span class="comment">// By adding -c, we force the driver to treat compilation as the last phase.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   <span class="comment">// It will then issue warnings via Diagnostics about un-used options that</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   <span class="comment">// would have been used for linking. If the user provided a compiler name as</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   <span class="comment">// the original argv[0], this will be treated as a linker input thanks to</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   <span class="comment">// insertng a new argv[0] above. All un-used options get collected by</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>   <span class="comment">// UnusedInputdiagConsumer and get stripped out later.</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   Args.push_back(<span class="stringliteral">"-c"</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="comment">// Put a dummy C++ file on to ensure there's at least one compile job for the</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   <span class="comment">// driver to construct. If the user specified some other argument that</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   <span class="comment">// prevents compilation, e.g. -E or something like -version, we may still end</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>   <span class="comment">// up with no jobs but then this is the user's fault.</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>   Args.push_back(<span class="stringliteral">"placeholder.cpp"</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="keyword">const</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<driver::Compilation></a> Compilation(</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>       NewDriver->BuildCompilation(Args));</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="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobList.html" title="JobList - A sequence of jobs to perform.">driver::JobList</a> &Jobs = Compilation-><a class="code" href="classclang_1_1driver_1_1JobList.html#a13d61322cf229cc8ce52421db89a0f4e">getJobs</a>();</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>   <a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html">CompileJobAnalyzer</a> CompileAnalyzer;</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1driver_1_1JobList.html#a90d7489ef37681b67257498f301b6abe">driver::JobList::const_iterator</a> I = Jobs.begin(), E = Jobs.end(); I != E;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>        ++I) {</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     <span class="keywordflow">if</span> ((*I)->getKind() == <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325ca490e8d93611abf651a5884616085adaf">driver::Job::CommandClass</a>) {</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">driver::Command</a> *Cmd = cast<driver::Command>(*I);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>       <span class="comment">// Collect only for Assemble jobs. If we do all jobs we get duplicates</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>       <span class="comment">// since Link jobs point to Assemble jobs as inputs.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>       <span class="keywordflow">if</span> (Cmd-><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>().<a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a89e9db1c6bae75083b1fcd96b1ca3f5e">driver::Action::AssembleJobClass</a>)</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>         CompileAnalyzer.<a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html#a64f006841456704cabeaad170c449371">run</a>(&Cmd-><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="l00255"></a><span class="lineno">  255</span>     }</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   }</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>   <span class="keywordflow">if</span> (CompileAnalyzer.<a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html#a89c3be9e938cfb090078a7e01cd557d1">Inputs</a>.empty()) {</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     <span class="comment">// No compile jobs found.</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>     <span class="comment">// FIXME: Emit a warning of some kind?</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>   <span class="comment">// Remove all compilation input files from the command line. This is</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>   <span class="comment">// necessary so that getCompileCommands() can construct a command line for</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>   <span class="comment">// each file.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>   std::vector<const char *>::iterator End = std::remove_if(</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>       Args.begin(), Args.end(), <a class="code" href="structclang_1_1tooling_1_1MatchesAny.html">MatchesAny</a>(CompileAnalyzer.<a class="code" href="structclang_1_1tooling_1_1CompileJobAnalyzer.html#a89c3be9e938cfb090078a7e01cd557d1">Inputs</a>));</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">// Remove all inputs deemed unused for compilation.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>   End = std::remove_if(Args.begin(), End, <a class="code" href="structclang_1_1tooling_1_1MatchesAny.html">MatchesAny</a>(DiagClient.<a class="code" href="classclang_1_1tooling_1_1UnusedInputDiagConsumer.html#a6dc208773ce571835015aa55cfc6d529">UnusedInputs</a>));</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>   <span class="comment">// Remove the -c add above as well. It will be at the end right now.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>   --End;</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>   Result = std::vector<std::string>(Args.begin() + 1, End);</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>   <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> FixedCompilationDatabase *</div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a91e2eab2e10f31074aebaed1ed18c791">  281</a></span> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a91e2eab2e10f31074aebaed1ed18c791" title="Creates a FixedCompilationDatabase from the arguments after "&ndash;".">FixedCompilationDatabase::loadFromCommandLine</a>(<span class="keywordtype">int</span> &Argc,</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>                                               <span class="keyword">const</span> <span class="keywordtype">char</span> **Argv,</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>                                               Twine Directory) {</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>   <span class="keyword">const</span> <span class="keywordtype">char</span> **DoubleDash = std::find(Argv, Argv + Argc, StringRef(<span class="stringliteral">"--"</span>));</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>   <span class="keywordflow">if</span> (DoubleDash == Argv + Argc)</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>     <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   std::vector<const char *> <a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>(DoubleDash + 1, Argv + Argc);</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>   Argc = DoubleDash - Argv;</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>   std::vector<std::string> StrippedArgs;</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>   <span class="keywordflow">if</span> (!<a class="code" href="namespaceclang_1_1tooling.html#a1b612e54b78a4a94b7c2ed03bb32df09" title="Strips any positional args and possible argv[0] from a command-line provided by the user to construct...">stripPositionalArgs</a>(CommandLine, StrippedArgs))</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#af6346d40e324594d89ced97f0b3bd1fe" title="Constructs a compilation data base from a specified directory and command line.">FixedCompilationDatabase</a>(Directory, StrippedArgs);</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> }</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#af6346d40e324594d89ced97f0b3bd1fe" title="Constructs a compilation data base from a specified directory and command line.">FixedCompilationDatabase::</a></div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#af6346d40e324594d89ced97f0b3bd1fe">  297</a></span> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#af6346d40e324594d89ced97f0b3bd1fe" title="Constructs a compilation data base from a specified directory and command line.">FixedCompilationDatabase</a>(Twine Directory, <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::string></a> <a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>) {</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>   std::vector<std::string> ToolCommandLine(1, <span class="stringliteral">"clang-tool"</span>);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   ToolCommandLine.insert(ToolCommandLine.end(),</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>                          CommandLine.begin(), CommandLine.end());</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>   CompileCommands.push_back(<a class="code" href="structclang_1_1tooling_1_1CompileCommand.html" title="Specifies the working directory and command of a compilation.">CompileCommand</a>(Directory, ToolCommandLine));</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> }</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> std::vector<CompileCommand></div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#ad90268d9c7972265869034648b73a921">  305</a></span> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#ad90268d9c7972265869034648b73a921" title="Returns the given compile command.">FixedCompilationDatabase::getCompileCommands</a>(StringRef FilePath)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>   std::vector<CompileCommand> Result(CompileCommands);</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>   Result[0].CommandLine.push_back(FilePath);</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>   <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> }</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> std::vector<std::string></div>
+<div class="line"><a name="l00312"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a40a6b94d556907cdc73409a861c8ea1c">  312</a></span> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a40a6b94d556907cdc73409a861c8ea1c" title="Returns the list of all files available in the compilation database.">FixedCompilationDatabase::getAllFiles</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>   <span class="keywordflow">return</span> std::vector<std::string>();</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> }</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> std::vector<CompileCommand></div>
+<div class="line"><a name="l00317"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a0c410c01fbfa64f4424a9b4c3c66f155">  317</a></span> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a0c410c01fbfa64f4424a9b4c3c66f155" title="Returns all compile commands for all the files in the compilation database.">FixedCompilationDatabase::getAllCompileCommands</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>   <span class="keywordflow">return</span> std::vector<CompileCommand>();</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> }</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">// This anchor is used to force the linker to link in the generated object file</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">// and thus register the JSONCompilationDatabasePlugin.</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="keyword">extern</span> <span class="keyword">volatile</span> <span class="keywordtype">int</span> <a class="code" href="namespaceclang_1_1tooling.html#a06e86121c34cc5335de6aacec0de6c2b">JSONAnchorSource</a>;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"><a class="code" href="namespaceclang_1_1tooling.html#a20bafb8d0caddec9f036553cd7f973c8">  324</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="namespaceclang_1_1tooling.html#a20bafb8d0caddec9f036553cd7f973c8">JSONAnchorDest</a> = <a class="code" href="namespaceclang_1_1tooling.html#a06e86121c34cc5335de6aacec0de6c2b">JSONAnchorSource</a>;</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">// end namespace tooling</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> } <span class="comment">// end namespace clang</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,304 @@
+<!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: CompilationDatabase.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_14ab871e308b37f9042717085145c002.html">Tooling</a></li><li class="navelem"><a class="el" href="dir_88d92a3518b6d6dcb8dd1cee7c911282.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilationDatabase.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilationDatabase_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/Tooling/Release+Asserts/CompilationDatabase.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/Release+Asserts/CompilationDatabase.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  CompilationDatabase.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/CompilationDatabase.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.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/Support/MathExtras.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/<a class="code" href="namespaceclang_1_1tooling.html#a86cedd09c87896789cb6e3bf67d327ce">CompilationDatabasePluginRegistry</a>.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/Registry.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/Tooling.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/SourceLocation.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/DenseMap.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileSystemOptions.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/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Util.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendAction.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendOptions.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/CommandLineSourceLoc.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/ArgumentsAdjusters.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/Support/Path.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Types.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Phases.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Types.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Driver.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/DriverDiagnostic.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticDriverKinds.inc \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Job.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Option/Option.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/Option/OptTable.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Compilation.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/TextDiagnosticPrinter.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/Support/Host.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/include/llvm/Option/Arg.h</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/CompilationDatabase.h:</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/<a class="code" href="namespaceclang_1_1tooling.html#a86cedd09c87896789cb6e3bf67d327ce">CompilationDatabasePluginRegistry</a>.h:</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> /home/tstellar/llvm/include/llvm/Support/Registry.h:</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/Tooling.h:</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/SourceLocation.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/include/llvm/Support/PointerLikeTypeTraits.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/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileManager.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/Tooling/../../include/clang/Basic/FileSystemOptions.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/ADT/StringMap.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/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/FileSystem.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/SmallString.h:</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.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/Support/system_error.h:</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Util.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/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendAction.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/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> /home/tstellar/llvm/include/llvm/ADT/Optional.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/Triple.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/<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="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/<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="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/Tooling/../../include/clang/Basic/Sanitizers.def:</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/Tooling/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendOptions.h:</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/CommandLineSourceLoc.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/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.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/raw_ostream.h:</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h:</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/ArgumentsAdjusters.h:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/include/llvm/Support/Path.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.h:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Types.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Phases.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/Tooling/../../include/clang/Driver/Types.def:</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/Tooling/../../include/clang/Driver/Driver.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/DriverDiagnostic.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/Tooling/../../include/clang/Basic/DiagnosticDriverKinds.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/Tooling/../../include/clang/Driver/Job.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> /home/tstellar/llvm/include/llvm/Option/Option.h:</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> /home/tstellar/llvm/include/llvm/Option/OptTable.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/StringSet.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/Option/OptSpecifier.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/Tooling/../../include/clang/Driver/Compilation.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/TextDiagnosticPrinter.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/Support/Host.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/Option/Arg.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilationDatabase_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,295 @@
+<!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: CompilationDatabase.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_595f3151679c28f47cf4097124b3607a.html">Tooling</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilationDatabase.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilationDatabase_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">//===--- CompilationDatabase.h - --------------------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file provides an interface and multiple implementations for</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  CompilationDatabases.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//  While C++ refactoring and analysis tools are not compilers, and thus</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">//  don't run as part of the build system, they need the exact information</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="comment">//  of a build in order to be able to correctly understand the C++ code of</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment">//  the project. This information is provided via the CompilationDatabase</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment">//  interface.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="comment">//  To create a CompilationDatabase from a build directory one can call</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment">//  CompilationDatabase::loadFromDirectory(), which deduces the correct</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">//  compilation database from the root of the build tree.</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">//  See the concrete subclasses of CompilationDatabase for currently supported</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">//  formats.</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">//===----------------------------------------------------------------------===//</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">#ifndef LLVM_CLANG_TOOLING_COMPILATION_DATABASE_H</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_TOOLING_COMPILATION_DATABASE_H</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> <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="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "llvm/ADT/ArrayRef.h"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="preprocessor">#include "llvm/ADT/Twine.h"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="keyword">namespace </span>tooling {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment"></span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">/// \brief Specifies the working directory and command of a compilation.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileCommand.html">   43</a></span> <span class="comment"></span><span class="keyword">struct </span><a class="code" href="structclang_1_1tooling_1_1CompileCommand.html" title="Specifies the working directory and command of a compilation.">CompileCommand</a> {</div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#aea236be59dfb9e6cf44ffec6f5a49d90">   44</a></span>   <a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#aea236be59dfb9e6cf44ffec6f5a49d90">CompileCommand</a>() {}</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#a88394428c21ffbf65bbd3cf64687c62d">   45</a></span>   <a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#aea236be59dfb9e6cf44ffec6f5a49d90">CompileCommand</a>(Twine <a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#a47d349cba9b388ec7949efbb0faae521" title="The working directory the command was executed from.">Directory</a>, <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::string></a> <a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#a94729fa03d1ab3181885db309a2ef29a" title="The command line that was executed.">CommandLine</a>)</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>     : Directory(Directory.str()), CommandLine(CommandLine) {}</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">  /// \brief The working directory the command was executed from.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#a47d349cba9b388ec7949efbb0faae521">   49</a></span> <span class="comment"></span>  std::string <a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#a47d349cba9b388ec7949efbb0faae521" title="The working directory the command was executed from.">Directory</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">  /// \brief The command line that was executed.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#a94729fa03d1ab3181885db309a2ef29a">   52</a></span> <span class="comment"></span>  std::vector<std::string> <a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#a94729fa03d1ab3181885db309a2ef29a" title="The command line that was executed.">CommandLine</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">  /// \brief An optional mapping from each file's path to its content for all</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  /// files needed for the compilation that are not available via the file</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">  /// system.</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">  /// Note that a tool implementation is required to fall back to the file</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">  /// system if a source file is not provided in the mapped sources, as</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">  /// compilation databases will usually not provide all files in mapped sources</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">  /// for performance reasons.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#abc7f93f6575e0074cc0dce5e943ba34e">   62</a></span> <span class="comment"></span>  std::vector<std::pair<std::string, std::string> > <a class="code" href="structclang_1_1tooling_1_1CompileCommand.html#abc7f93f6575e0074cc0dce5e943ba34e" title="An optional mapping from each file's path to its content for all files needed for the compilation tha...">MappedSources</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> <span class="comment"></span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">/// \brief Interface for compilation databases.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">/// A compilation database allows the user to retrieve all compile command lines</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment">/// that a specified file is compiled with in a project.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">/// The retrieved compile command lines can be used to run clang tools over</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">/// a subset of the files in a project.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html">   71</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> {</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a4668dc3183c8b0bc90d6a49f7399aecd">~CompilationDatabase</a>();</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment"></span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">  /// \brief Loads a compilation database from a build directory.</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">  /// Looks at the specified 'BuildDirectory' and creates a compilation database</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">  /// that allows to query compile commands for source files in the</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">  /// corresponding source tree.</span></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">  /// Returns NULL and sets ErrorMessage if we were not able to build up a</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">  /// compilation database for the build directory.</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">  /// FIXME: Currently only supports JSON compilation databases, which</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">  /// are named 'compile_commands.json' in the given directory. Extend this</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">  /// for other build types (like ninja build files).</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *<a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a8f96205d22fd4da418c8efe460c5fd56" title="Loads a compilation database from a build directory.">loadFromDirectory</a>(StringRef BuildDirectory,</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>                                                 std::string &ErrorMessage);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment"></span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">  /// \brief Tries to detect a compilation database location and load it.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">  /// Looks for a compilation database in all parent paths of file 'SourceFile'</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">  /// by calling loadFromDirectory.</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *<a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a0519f5963f3bb5acb95fa046e03d82bc" title="Tries to detect a compilation database location and load it.">autoDetectFromSource</a>(StringRef SourceFile,</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>                                                    std::string &ErrorMessage);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment"></span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">  /// \brief Tries to detect a compilation database location and load it.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">  /// Looks for a compilation database in directory 'SourceDir' and all</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">  /// its parent paths by calling loadFromDirectory.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *<a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a06648beb4d3038dad6cd52fe06b0a028" title="Tries to detect a compilation database location and load it.">autoDetectFromDirectory</a>(StringRef SourceDir,</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>                                                       std::string &ErrorMessage);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment"></span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">  /// \brief Returns all compile commands in which the specified file was</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">  /// compiled.</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">  /// This includes compile comamnds that span multiple source files.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">  /// For example, consider a project with the following compilations:</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">  /// $ clang++ -o test a.cc b.cc t.cc</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">  /// $ clang++ -o production a.cc b.cc -DPRODUCTION</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">  /// A compilation database representing the project would return both command</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">  /// lines for a.cc and b.cc and only the first command line for t.cc.</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<CompileCommand> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#a13ccee206f7d6612fca957bca56010c2" title="Returns all compile commands in which the specified file was compiled.">getCompileCommands</a>(</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     StringRef FilePath) <span class="keyword">const</span> = 0;</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 Returns the list of all files available in the compilation database.</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<std::string> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#ab769dcdb84e2875866c3344ae30898e2" title="Returns the list of all files available in the compilation database.">getAllFiles</a>() <span class="keyword">const</span> = 0;</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">  119</span> <span class="comment">  /// \brief Returns all compile commands for all the files in the compilation</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">  /// database.</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">  /// FIXME: Add a layer in Tooling that provides an interface to run a tool</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">  /// over all files in a compilation database. Not all build systems have the</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">  /// ability to provide a feasible implementation for \c getAllCompileCommands.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<CompileCommand> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html#af29e5f26a2687b8176c666d92a5ac8ac" title="Returns all compile commands for all the files in the compilation database.">getAllCompileCommands</a>() <span class="keyword">const</span> = 0;</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 Interface for compilation database plugins.</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">/// A compilation database plugin allows the user to register custom compilation</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">/// databases that are picked up as compilation database if the corresponding</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">/// library is linked in. To register a plugin, declare a static variable like:</span></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">/// \code</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">/// static CompilationDatabasePluginRegistry::Add<MyDatabasePlugin></span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">/// X("my-compilation-database", "Reads my own compilation database");</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1CompilationDatabasePlugin.html">  138</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1tooling_1_1CompilationDatabasePlugin.html" title="Interface for compilation database plugins.">CompilationDatabasePlugin</a> {</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabasePlugin.html#a1c2904ea404d25d18acd250d8792e4de">~CompilationDatabasePlugin</a>();</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 Loads a compilation database from a build directory.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">  /// \see CompilationDatabase::loadFromDirectory().</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> *<a class="code" href="classclang_1_1tooling_1_1CompilationDatabasePlugin.html#ad4bf8ca81edca18c2769679896e61c4e" title="Loads a compilation database from a build directory.">loadFromDirectory</a>(StringRef Directory,</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>                                                  std::string &ErrorMessage) = 0;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">/// \brief A compilation database that returns a single compile command line.</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">/// Useful when we want a tool to behave more like a compiler invocation.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html">  152</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html" title="A compilation database that returns a single compile command line.">FixedCompilationDatabase</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">  /// \brief Creates a FixedCompilationDatabase from the arguments after "--".</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">  /// Parses the given command line for "--". If "--" is found, the rest of</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">  /// the arguments will make up the command line in the returned</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">  /// FixedCompilationDatabase.</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">  /// The arguments after "--" must not include positional parameters or the</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">  /// argv[0] of the tool. Those will be added by the FixedCompilationDatabase</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">  /// when a CompileCommand is requested. The argv[0] of the returned command</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">  /// line will be "clang-tool".</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">  /// Returns NULL in case "--" is not found.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">  /// The argument list is meant to be compatible with normal llvm command line</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">  /// parsing in main methods.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">  /// int main(int argc, char **argv) {</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">  ///   OwningPtr<FixedCompilationDatabase> Compilations(</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">  ///     FixedCompilationDatabase::loadFromCommandLine(argc, argv));</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">  ///   cl::ParseCommandLineOptions(argc, argv);</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">  ///   ...</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></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">  /// \param Argc The number of command line arguments - will be changed to</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">  /// the number of arguments before "--", if "--" was found in the argument</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">  /// list.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">  /// \param Argv Points to the command line arguments.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">  /// \param Directory The base directory used in the FixedCompilationDatabase.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html" title="A compilation database that returns a single compile command line.">FixedCompilationDatabase</a> *<a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a91e2eab2e10f31074aebaed1ed18c791" title="Creates a FixedCompilationDatabase from the arguments after "&ndash;".">loadFromCommandLine</a>(<span class="keywordtype">int</span> &Argc,</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>                                                        <span class="keyword">const</span> <span class="keywordtype">char</span> **Argv,</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>                                                        Twine Directory = <span class="stringliteral">"."</span>);</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment"></span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">  /// \brief Constructs a compilation data base from a specified directory</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">  /// and command line.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment"></span>  <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#af6346d40e324594d89ced97f0b3bd1fe" title="Constructs a compilation data base from a specified directory and command line.">FixedCompilationDatabase</a>(Twine Directory, <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::string></a> <a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment"></span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">  /// \brief Returns the given compile command.</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">  /// Will always return a vector with one entry that contains the directory</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">  /// and command line specified at construction with "clang-tool" as argv[0]</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">  /// and 'FilePath' as positional argument.</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<CompileCommand> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#ad90268d9c7972265869034648b73a921" title="Returns the given compile command.">getCompileCommands</a>(</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>     StringRef FilePath) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment"></span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">  /// \brief Returns the list of all files available in the compilation database.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">  /// Note: This is always an empty list for the fixed compilation database.</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<std::string> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a40a6b94d556907cdc73409a861c8ea1c" title="Returns the list of all files available in the compilation database.">getAllFiles</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment"></span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">  /// \brief Returns all compile commands for all the files in the compilation</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">  /// database.</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">  /// Note: This is always an empty list for the fixed compilation database.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<CompileCommand> <a class="code" href="classclang_1_1tooling_1_1FixedCompilationDatabase.html#a0c410c01fbfa64f4424a9b4c3c66f155" title="Returns all compile commands for all the files in the compilation database.">getAllCompileCommands</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">  /// This is built up to contain a single entry vector to be returned from</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">  /// getCompileCommands after adding the positional argument.</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment"></span>  std::vector<CompileCommand> CompileCommands;</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="comment">// end namespace tooling</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="preprocessor">#endif // LLVM_CLANG_TOOLING_COMPILATION_DATABASE_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,322 @@
+<!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: Compilation.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">Compilation.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Compilation_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">//===--- Compilation.cpp - Compilation Task Implementation ----------------===//</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="Compilation_8h.html">clang/Driver/Compilation.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor">#include "<a class="code" href="Action_8h.html">clang/Driver/Action.h</a>"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include "<a class="code" href="Driver_8h.html">clang/Driver/Driver.h</a>"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="preprocessor">#include "<a class="code" href="DriverDiagnostic_8h.html">clang/Driver/DriverDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">clang/Driver/Options.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="ToolChain_8h.html">clang/Driver/ToolChain.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "llvm/ADT/STLExtras.h"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "llvm/Option/ArgList.h"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "llvm/Support/FileSystem.h"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include <errno.h></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include <sys/stat.h></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">using namespace </span>clang::driver;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">using namespace </span>llvm::opt;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a8dc584bdb5bcd9290f8c2c8d970b1ec2">   27</a></span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#a8dc584bdb5bcd9290f8c2c8d970b1ec2">Compilation::Compilation</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Driver.html">Driver</a> &D, <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> &_DefaultToolChain,</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>                          InputArgList *_Args, DerivedArgList *_TranslatedArgs)</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>   : TheDriver(D), DefaultToolChain(_DefaultToolChain), <a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>(_Args),</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>     TranslatedArgs(_TranslatedArgs), Redirects(0) {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> }</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a4cc46a1f22c9c04872e9d9e016b12088">   33</a></span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#a4cc46a1f22c9c04872e9d9e016b12088">Compilation::~Compilation</a>() {</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>   <span class="keyword">delete</span> TranslatedArgs;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>   <span class="keyword">delete</span> Args;</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>   <span class="comment">// Free any derived arg lists.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   <span class="keywordflow">for</span> (llvm::DenseMap<std::pair<const ToolChain*, const char*>,</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>                       DerivedArgList*>::iterator it = TCArgs.begin(),</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>          ie = TCArgs.end(); it != ie; ++it)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>     <span class="keywordflow">if</span> (it->second != TranslatedArgs)</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>       <span class="keyword">delete</span> it->second;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <span class="comment">// Free the actions, if built.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   <span class="keywordflow">for</span> (ActionList::iterator it = Actions.begin(), ie = Actions.end();</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>        it != ie; ++it)</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>     <span class="keyword">delete</span> *it;</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">// Free redirections of stdout/stderr.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   <span class="keywordflow">if</span> (Redirects) {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>     <span class="keyword">delete</span> Redirects[1];</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="keyword">delete</span> Redirects[2];</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     <span class="keyword">delete</span> [] Redirects;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> }</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a90be4f0c82ee360f4f0c54b14d56df70">   57</a></span> <span class="keyword">const</span> DerivedArgList &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a90be4f0c82ee360f4f0c54b14d56df70">Compilation::getArgsForToolChain</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="l00058"></a><span class="lineno">   58</span>                                                        <span class="keyword">const</span> <span class="keywordtype">char</span> *BoundArch) {</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <span class="keywordflow">if</span> (!TC)</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>     TC = &DefaultToolChain;</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>   DerivedArgList *&Entry = TCArgs[std::make_pair(TC, BoundArch)];</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <span class="keywordflow">if</span> (!Entry) {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     Entry = TC-><a class="code" href="classclang_1_1driver_1_1ToolChain.html#aa8f336dc0b1282dbcc987836ce8b0547">TranslateArgs</a>(*TranslatedArgs, BoundArch);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>     <span class="keywordflow">if</span> (!Entry)</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>       Entry = TranslatedArgs;</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="keywordflow">return</span> *Entry;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> }</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#ab557852d0ec596e76558d8224b598af5">   72</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab557852d0ec596e76558d8224b598af5">Compilation::CleanupFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *File, <span class="keywordtype">bool</span> IssueErrors)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   std::string <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>(File);</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">// FIXME: Why are we trying to remove files that we have not created? For</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="comment">// example we should only try to remove a temporary assembly file if</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <span class="comment">// "clang -cc1" succeed in writing it. Was this a workaround for when</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   <span class="comment">// clang was writing directly to a .s file and sometimes leaving it behind</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <span class="comment">// during a failure?</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   <span class="comment">// FIXME: If this is necessary, we can still try to split</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   <span class="comment">// llvm::sys::fs::remove into a removeFile and a removeDir and avoid the</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   <span class="comment">// duplicated stat from is_regular_file.</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>   <span class="comment">// Don't try to remove files which we don't have write access to (but may be</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <span class="comment">// able to remove), or non-regular files. Underlying tools may have</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>   <span class="comment">// intentionally not overwritten them.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>   <span class="keywordflow">if</span> (!llvm::sys::fs::can_write(File) || !llvm::sys::fs::is_regular_file(File))</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   <span class="keywordflow">if</span> (llvm::error_code EC = llvm::sys::fs::remove(File)) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     <span class="comment">// Failure is only failure if the file exists and is "regular". We checked</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>     <span class="comment">// for it being regular before, and llvm::sys::fs::remove ignores ENOENT,</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>     <span class="comment">// so we don't need to check again.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>     <span class="keywordflow">if</span> (IssueErrors)</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>       <a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().<a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_unable_to_remove_file)</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>         << EC.message();</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>   }</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> }</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a62e4310546e96bfd1d22c0b4c5fd549e">  104</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#a62e4310546e96bfd1d22c0b4c5fd549e">Compilation::CleanupFileList</a>(<span class="keyword">const</span> ArgStringList &Files,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>                                   <span class="keywordtype">bool</span> IssueErrors)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   <span class="keywordtype">bool</span> Success = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   <span class="keywordflow">for</span> (ArgStringList::const_iterator</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>          it = Files.begin(), ie = Files.end(); it != ie; ++it)</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>     Success &= <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab557852d0ec596e76558d8224b598af5">CleanupFile</a>(*it, IssueErrors);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="keywordflow">return</span> Success;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> }</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#ab1d4bfaa90951246840c67ea683ae511">  113</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab1d4bfaa90951246840c67ea683ae511">Compilation::CleanupFileMap</a>(<span class="keyword">const</span> <a class="code" href="namespaceclang_1_1driver.html#a4c9e65b15a588b56e1f62cd0407f78b8" title="ArgStringMap - Type used to map a JobAction to its result file.">ArgStringMap</a> &Files,</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</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="l00115"></a><span class="lineno">  115</span>                                  <span class="keywordtype">bool</span> IssueErrors)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   <span class="keywordtype">bool</span> Success = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="keywordflow">for</span> (ArgStringMap::const_iterator</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>          it = Files.begin(), ie = Files.end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="comment">// If specified, only delete the files associated with the JobAction.</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>     <span class="comment">// Otherwise, delete all files in the map.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>     <span class="keywordflow">if</span> (JA && it->first != JA)</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     Success &= <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab557852d0ec596e76558d8224b598af5">CleanupFile</a>(it->second, IssueErrors);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   }</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>   <span class="keywordflow">return</span> Success;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> }</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a8580d6cae43e8b9c6b8a8ac3bf2b982a">  129</a></span> <span class="keywordtype">int</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#a8580d6cae43e8b9c6b8a8ac3bf2b982a">Compilation::ExecuteCommand</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> &C,</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>                                 <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *&FailingCommand)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="keywordflow">if</span> ((<a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().CCPrintOptions ||</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>        <a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>().hasArg(options::OPT_v)) && !<a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().CCGenDiagnostics) {</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>     raw_ostream *OS = &llvm::errs();</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>     <span class="comment">// Follow gcc implementation of CC_PRINT_OPTIONS; we could also cache the</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>     <span class="comment">// output stream.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().CCPrintOptions && <a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().CCPrintOptionsFilename) {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>       std::string Error;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>       OS = <span class="keyword">new</span> llvm::raw_fd_ostream(<a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().CCPrintOptionsFilename, Error,</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>                                     llvm::sys::fs::F_Append);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>       <span class="keywordflow">if</span> (!Error.empty()) {</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>         <a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().<a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_cc_print_options_failure)</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>           << Error;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>         FailingCommand = &C;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>         <span class="keyword">delete</span> OS;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>         <span class="keywordflow">return</span> 1;</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> </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().CCPrintOptions)</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>       *OS << <span class="stringliteral">"[Logging clang options]"</span>;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>     C.<a class="code" href="classclang_1_1driver_1_1Command.html#a756e3765edc05da289e6e28e3de6cc76">Print</a>(*OS, <span class="stringliteral">"\n"</span>, <span class="comment">/*Quote=*/</span><a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().CCPrintOptions);</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>     <span class="keywordflow">if</span> (OS != &llvm::errs())</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>       <span class="keyword">delete</span> OS;</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> </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   std::string Error;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>   <span class="keywordtype">bool</span> ExecutionFailed;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <span class="keywordtype">int</span> Res = C.<a class="code" href="classclang_1_1driver_1_1Command.html#a5b2b432e1c33d92674adeeb4330c2150">Execute</a>(Redirects, &Error, &ExecutionFailed);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="keywordflow">if</span> (!Error.empty()) {</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>     assert(Res && <span class="stringliteral">"Error string set with 0 result code!"</span>);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>     <a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().<a class="code" href="classclang_1_1driver_1_1Driver.html#a49961de34e935d830d621e541380e668">Diag</a>(clang::diag::err_drv_command_failure) << Error;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>   }</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   <span class="keywordflow">if</span> (Res)</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>     FailingCommand = &C;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>   <span class="keywordflow">return</span> ExecutionFailed ? 1 : Res;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> }</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="Compilation_8cpp.html#aaf933d8430a3e7baae37795552b6b519">  173</a></span> <span class="keyword">typedef</span> SmallVectorImpl< std::pair<int, const Command *> > <a class="code" href="Compilation_8cpp.html#aaf933d8430a3e7baae37795552b6b519">FailingCommandList</a>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"><a class="code" href="Compilation_8cpp.html#a08bf9d33b3f14996687a438585cd847a">  175</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Compilation_8cpp.html#a08bf9d33b3f14996687a438585cd847a">ActionFailed</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="l00176"></a><span class="lineno">  176</span>                          <span class="keyword">const</span> <a class="code" href="Compilation_8cpp.html#aaf933d8430a3e7baae37795552b6b519">FailingCommandList</a> &FailingCommands) {</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>   <span class="keywordflow">if</span> (FailingCommands.empty())</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</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>   <span class="keywordflow">for</span> (FailingCommandList::const_iterator CI = FailingCommands.begin(),</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>          CE = FailingCommands.end(); CI != CE; ++CI)</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>     <span class="keywordflow">if</span> (A == &(CI->second->getSource()))</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1driver_1_1Action.html#a4600bdd405403a37fb4baddec485f625">Action::const_iterator</a> AI = A-><a class="code" href="classclang_1_1driver_1_1Action.html#a5f5f713cfeadf8708788ccfb88dd001e">begin</a>(), AE = A-><a class="code" href="classclang_1_1driver_1_1Action.html#abef57633338ff7105f7d8ce4a954a2a8">end</a>(); AI != AE; ++AI)</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>     <span class="keywordflow">if</span> (<a class="code" href="Compilation_8cpp.html#a08bf9d33b3f14996687a438585cd847a">ActionFailed</a>(*AI, FailingCommands))</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>       <span class="keywordflow">return</span> <span class="keyword">true</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="keywordflow">return</span> <span class="keyword">false</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> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="Compilation_8cpp.html#aa25c53b2a5bca4b4c902dd0077f0e35f">  193</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Compilation_8cpp.html#aa25c53b2a5bca4b4c902dd0077f0e35f">InputsOk</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> &C,</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>                      <span class="keyword">const</span> <a class="code" href="Compilation_8cpp.html#aaf933d8430a3e7baae37795552b6b519">FailingCommandList</a> &FailingCommands) {</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>   <span class="keywordflow">return</span> !<a class="code" href="Compilation_8cpp.html#a08bf9d33b3f14996687a438585cd847a">ActionFailed</a>(&C.<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>(), FailingCommands);</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> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#ab34f2f199fa2e17d303d239b7df15f41">  198</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab34f2f199fa2e17d303d239b7df15f41">Compilation::ExecuteJob</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> &J,</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>                              <a class="code" href="Compilation_8cpp.html#aaf933d8430a3e7baae37795552b6b519">FailingCommandList</a> &FailingCommands)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *C = dyn_cast<Command>(&J)) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>     <span class="keywordflow">if</span> (!<a class="code" href="Compilation_8cpp.html#aa25c53b2a5bca4b4c902dd0077f0e35f">InputsOk</a>(*C, FailingCommands))</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *FailingCommand = 0;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>     <span class="keywordflow">if</span> (<span class="keywordtype">int</span> Res = <a class="code" href="classclang_1_1driver_1_1Compilation.html#a8580d6cae43e8b9c6b8a8ac3bf2b982a">ExecuteCommand</a>(*C, FailingCommand))</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>       FailingCommands.push_back(std::make_pair(Res, FailingCommand));</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobList.html" title="JobList - A sequence of jobs to perform.">JobList</a> *Jobs = cast<JobList>(&J);</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1driver_1_1JobList.html#a90d7489ef37681b67257498f301b6abe">JobList::const_iterator</a> it = Jobs-><a class="code" href="classclang_1_1driver_1_1JobList.html#aeeda6d07404d2522b551cdbc5d4fa98c">begin</a>(), ie = Jobs-><a class="code" href="classclang_1_1driver_1_1JobList.html#aa57291941ad8fa332bb20995b76cd70e">end</a>();</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>          it != ie; ++it)</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>       <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab34f2f199fa2e17d303d239b7df15f41">ExecuteJob</a>(**it, FailingCommands);</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> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#ac03d926e31599bb9624271fab6966a3c">  214</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#ac03d926e31599bb9624271fab6966a3c">Compilation::initCompilationForDiagnostics</a>() {</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   <span class="comment">// Free actions and jobs.</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   DeleteContainerPointers(Actions);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   Jobs.<a class="code" href="classclang_1_1driver_1_1JobList.html#a5ac0da9146d5e81b00a8a9dafd341a5c" title="Clear the job list.">clear</a>();</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>   <span class="comment">// Clear temporary/results file lists.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   TempFiles.clear();</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   ResultFiles.clear();</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>   FailureResultFiles.clear();</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <span class="comment">// Remove any user specified output.  Claim any unclaimed arguments, so as</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   <span class="comment">// to avoid emitting warnings about unused args.</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   OptSpecifier OutputOpts[] = { options::OPT_o, options::OPT_MD,</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>                                 options::OPT_MMD };</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = llvm::array_lengthof(OutputOpts); i != e; ++i) {</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     <span class="keywordflow">if</span> (TranslatedArgs->hasArg(OutputOpts[i]))</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>       TranslatedArgs->eraseArg(OutputOpts[i]);</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>   TranslatedArgs->ClaimAllArgs();</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="comment">// Redirect stdout/stderr to /dev/null.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   Redirects = <span class="keyword">new</span> <span class="keyword">const</span> StringRef*[3]();</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   Redirects[0] = 0;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>   Redirects[1] = <span class="keyword">new</span> <span class="keyword">const</span> StringRef();</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>   Redirects[2] = <span class="keyword">new</span> <span class="keyword">const</span> StringRef();</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> </div>
+<div class="line"><a name="l00241"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a94648433f1524b4967a06f1c9cff2fdd">  241</a></span> StringRef <a class="code" href="classclang_1_1driver_1_1Compilation.html#a94648433f1524b4967a06f1c9cff2fdd" title="Returns the sysroot path.">Compilation::getSysRoot</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>().<a class="code" href="classclang_1_1driver_1_1Driver.html#a0339340ab6987b95840159f00852e733" title="sysroot, if present">SysRoot</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,244 @@
+<!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: Compilation.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">Compilation.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Compilation_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/Compilation.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Driver/Release+Asserts/Compilation.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  Compilation.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Compilation.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Job.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/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/MathExtras.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Option/Option.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Option/OptTable.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Util.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/Support/Path.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</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="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Phases.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.def \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Driver.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../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/Driver/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/DriverDiagnostic.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticDriverKinds.inc \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.inc \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/ToolChain.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/include/llvm/Option/ArgList.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h</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> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Compilation.h:</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Job.h:</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> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</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> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</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> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> /home/tstellar/llvm/include/llvm/Option/Option.h:</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> /home/tstellar/llvm/include/llvm/Option/OptTable.h:</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h:</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h:</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Util.h:</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> /home/tstellar/llvm/include/llvm/Support/Path.h:</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.h:</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.h:</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Phases.h:</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.def:</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Driver.h:</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/Driver/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/Driver/../../include/clang/Basic/DiagnosticOptions.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/Driver/../../include/clang/Basic/DiagnosticOptions.def:</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/Driver/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.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/ADT/Triple.h:</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/DriverDiagnostic.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/tools/clang/lib/Driver/../../include/clang/Basic/DiagnosticDriverKinds.inc:</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.h:</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Options.inc:</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/ToolChain.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/STLExtras.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/Option/ArgList.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/FileSystem.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/TimeValue.h:</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> /home/tstellar/llvm/include/llvm/Support/system_error.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/raw_ostream.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Compilation_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: Compilation.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">Compilation.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Compilation_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">//===--- Compilation.h - Compilation Task Data Structure --------*- 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_COMPILATION_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_COMPILATION_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="Job_8h.html">clang/Driver/Job.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="Util_8h.html">clang/Driver/Util.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "llvm/Support/Path.h"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="keyword">namespace </span>opt {</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>   <span class="keyword">class </span>DerivedArgList;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>   <span class="keyword">class </span>InputArgList;</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> }</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>driver {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>   <span class="keyword">class </span>Driver;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>   <span class="keyword">class </span>JobAction;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">class </span>JobList;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>   <span class="keyword">class </span>ToolChain;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">/// Compilation - A set of tasks to perform for a single driver</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">/// invocation.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html">   34</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1Compilation.html">Compilation</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">  /// The driver we were created by.</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_1driver_1_1Driver.html">Driver</a> &TheDriver;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment"></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">  /// The default tool chain.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</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> &DefaultToolChain;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">  /// The original (untranslated) input argument list.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment"></span>  llvm::opt::InputArgList *Args;</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">  /// The driver translated arguments. Note that toolchains may perform their</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">  /// own argument translation.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment"></span>  llvm::opt::DerivedArgList *TranslatedArgs;</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 list of actions.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> Actions;</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 root list of jobs.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment"></span>  <a class="code" href="classclang_1_1driver_1_1JobList.html" title="JobList - A sequence of jobs to perform.">JobList</a> Jobs;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">  /// Cache of translated arguments for a particular tool chain and bound</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  /// architecture.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment"></span>  llvm::DenseMap<std::pair<const ToolChain *, const char *>,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>                  llvm::opt::DerivedArgList *> TCArgs;</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">  /// Temporary files which should be removed on exit.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment"></span>  llvm::opt::ArgStringList TempFiles;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment"></span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">  /// Result files which should be removed on failure.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1driver.html#a4c9e65b15a588b56e1f62cd0407f78b8" title="ArgStringMap - Type used to map a JobAction to its result file.">ArgStringMap</a> ResultFiles;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment"></span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">  /// Result files which are generated correctly on failure, and which should</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">  /// only be removed if we crash.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1driver.html#a4c9e65b15a588b56e1f62cd0407f78b8" title="ArgStringMap - Type used to map a JobAction to its result file.">ArgStringMap</a> FailureResultFiles;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">  /// Redirection for stdout, stderr, etc.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment"></span>  <span class="keyword">const</span> StringRef **Redirects;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <a class="code" href="classclang_1_1driver_1_1Compilation.html#a8dc584bdb5bcd9290f8c2c8d970b1ec2">Compilation</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Driver.html">Driver</a> &D, <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> &DefaultToolChain,</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>               llvm::opt::InputArgList *Args,</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>               llvm::opt::DerivedArgList *TranslatedArgs);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <a class="code" href="classclang_1_1driver_1_1Compilation.html#a4cc46a1f22c9c04872e9d9e016b12088">~Compilation</a>();</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">   78</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Driver.html">Driver</a> &<a class="code" href="classclang_1_1driver_1_1Compilation.html#af1a9d24ea4ca368f9506b26469c76f08">getDriver</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> TheDriver; }</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">   80</a></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> &<a class="code" href="classclang_1_1driver_1_1Compilation.html#adfc65c26f1d062c6fa8380b59b05000f">getDefaultToolChain</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DefaultToolChain; }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a0ed7089f818b4e142fc504fd70c9dff9">   82</a></span>   <span class="keyword">const</span> llvm::opt::InputArgList &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a0ed7089f818b4e142fc504fd70c9dff9">getInputArgs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *Args; }</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">   84</a></span>   <span class="keyword">const</span> llvm::opt::DerivedArgList &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a261fb02611346de2de06a1045e72023d">getArgs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *TranslatedArgs; }</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_1Compilation.html#a91fcac5ff449c16ec732d3d60fe2a16e">   86</a></span>   llvm::opt::DerivedArgList &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a91fcac5ff449c16ec732d3d60fe2a16e">getArgs</a>() { <span class="keywordflow">return</span> *TranslatedArgs; }</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">   88</a></span>   <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &<a class="code" href="classclang_1_1driver_1_1Compilation.html#adc94fb031fb167c8e98412dfc9f75cc0">getActions</a>() { <span class="keywordflow">return</span> Actions; }</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a2d1c74703b7b382ee180a4e5f4ef48f6">   89</a></span>   <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a2d1c74703b7b382ee180a4e5f4ef48f6">getActions</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Actions; }</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#aab33a3c539568797b39f9ee103d7f467">   91</a></span>   <a class="code" href="classclang_1_1driver_1_1JobList.html" title="JobList - A sequence of jobs to perform.">JobList</a> &<a class="code" href="classclang_1_1driver_1_1Compilation.html#aab33a3c539568797b39f9ee103d7f467">getJobs</a>() { <span class="keywordflow">return</span> Jobs; }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a3d2fecfcaf95f189d21778169d42d09a">   92</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1JobList.html" title="JobList - A sequence of jobs to perform.">JobList</a> &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a3d2fecfcaf95f189d21778169d42d09a">getJobs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Jobs; }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#aa9339c11fa34e723aa637144e96d772c">   94</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#aa9339c11fa34e723aa637144e96d772c">addCommand</a>(<a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *C) { Jobs.<a class="code" href="classclang_1_1driver_1_1JobList.html#a411e343ab8ef25273b7be7792213a746" title="Add a job to the list (taking ownership).">addJob</a>(C); }</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a0bc287bfdeef1813d74cfce1ca5b76be">   96</a></span>   <span class="keyword">const</span> llvm::opt::ArgStringList &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a0bc287bfdeef1813d74cfce1ca5b76be">getTempFiles</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> TempFiles; }</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a3a64865aa2c292b5bd4274e02b8862f6">   98</a></span>   <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1driver.html#a4c9e65b15a588b56e1f62cd0407f78b8" title="ArgStringMap - Type used to map a JobAction to its result file.">ArgStringMap</a> &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a3a64865aa2c292b5bd4274e02b8862f6">getResultFiles</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ResultFiles; }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a9caeddf62c05104e95ee0bdf9c93cfa8">  100</a></span>   <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1driver.html#a4c9e65b15a588b56e1f62cd0407f78b8" title="ArgStringMap - Type used to map a JobAction to its result file.">ArgStringMap</a> &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a9caeddf62c05104e95ee0bdf9c93cfa8">getFailureResultFiles</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>     <span class="keywordflow">return</span> FailureResultFiles;</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="comment"></span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">  /// Returns the sysroot path.</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment"></span>  StringRef <a class="code" href="classclang_1_1driver_1_1Compilation.html#a94648433f1524b4967a06f1c9cff2fdd" title="Returns the sysroot path.">getSysRoot</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment"></span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">  /// getArgsForToolChain - Return the derived argument list for the</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">  /// tool chain \p TC (or the default tool chain, if TC is not specified).</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">  /// \param BoundArch - The bound architecture name, or 0.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment"></span>  <span class="keyword">const</span> llvm::opt::DerivedArgList &<a class="code" href="classclang_1_1driver_1_1Compilation.html#a90be4f0c82ee360f4f0c54b14d56df70">getArgsForToolChain</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="l00112"></a><span class="lineno">  112</span>                                                        <span class="keyword">const</span> <span class="keywordtype">char</span> *BoundArch);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment"></span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">  /// addTempFile - Add a file to remove on exit, and returns its</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">  /// argument.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a5eb6ace2daf11fd6a3a28603e26f487c">  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_1Compilation.html#a5eb6ace2daf11fd6a3a28603e26f487c">addTempFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Name) {</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>     TempFiles.push_back(Name);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>     <span class="keywordflow">return</span> Name;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   }</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment"></span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">  /// addResultFile - Add a file to remove on failure, and returns its</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">  /// argument.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a78bf2dc96ba983b17e0e8c7cb2cd8c05">  123</a></span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Compilation.html#a78bf2dc96ba983b17e0e8c7cb2cd8c05">addResultFile</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_1JobAction.html">JobAction</a> *JA) {</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     ResultFiles[JA] = Name;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>     <span class="keywordflow">return</span> Name;</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">  /// addFailureResultFile - Add a file to remove if we crash, and returns its</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">  /// argument.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Compilation.html#a40154c78facd1b2856ab0083dfbd9a33">  130</a></span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Compilation.html#a40154c78facd1b2856ab0083dfbd9a33">addFailureResultFile</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_1JobAction.html">JobAction</a> *JA) {</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>     FailureResultFiles[JA] = Name;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>     <span class="keywordflow">return</span> Name;</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">  /// CleanupFile - Delete a given file.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">  /// \param IssueErrors - Report failures as errors.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">  /// \return Whether the file was removed successfully.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab557852d0ec596e76558d8224b598af5">CleanupFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *File, <span class="keywordtype">bool</span> IssueErrors = <span class="keyword">false</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment"></span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">  /// CleanupFileList - Remove the files in the given list.</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">  /// \param IssueErrors - Report failures as errors.</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">  /// \return Whether all files were removed successfully.</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#a62e4310546e96bfd1d22c0b4c5fd549e">CleanupFileList</a>(<span class="keyword">const</span> llvm::opt::ArgStringList &Files,</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>                        <span class="keywordtype">bool</span> IssueErrors = <span class="keyword">false</span>) <span class="keyword">const</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">  /// CleanupFileMap - Remove the files in the given map.</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">  150</span> <span class="comment">  /// \param JA - If specified, only delete the files associated with this</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">  /// JobAction.  Otherwise, delete all files in the map.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">  /// \param IssueErrors - Report failures as errors.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">  /// \return Whether all files were removed successfully.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab1d4bfaa90951246840c67ea683ae511">CleanupFileMap</a>(<span class="keyword">const</span> <a class="code" href="namespaceclang_1_1driver.html#a4c9e65b15a588b56e1f62cd0407f78b8" title="ArgStringMap - Type used to map a JobAction to its result file.">ArgStringMap</a> &Files,</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</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="l00156"></a><span class="lineno">  156</span>                       <span class="keywordtype">bool</span> IssueErrors = <span class="keyword">false</span>) <span class="keyword">const</span>;</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">  /// ExecuteCommand - Execute an actual command.</span></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">  /// \param FailingCommand - For non-zero results, this will be set to the</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment">  /// Command which failed, if any.</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment">  /// \return The result code of the subprocess.</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment"></span>  <span class="keywordtype">int</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#a8580d6cae43e8b9c6b8a8ac3bf2b982a">ExecuteCommand</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> &C, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *&FailingCommand) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment"></span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">  /// ExecuteJob - Execute a single job.</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">  /// \param FailingCommands - For non-zero results, this will be a vector of</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">  /// failing commands and their associated result code.</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#ab34f2f199fa2e17d303d239b7df15f41">ExecuteJob</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> &J,</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</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="l00171"></a><span class="lineno">  171</span> <span class="comment"></span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">  /// initCompilationForDiagnostics - Remove stale state and suppress output</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">  /// so compilation can be reexecuted to generate additional diagnostic</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment">  /// information (e.g., preprocessed source(s)).</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Compilation.html#ac03d926e31599bb9624271fab6966a3c">initCompilationForDiagnostics</a>();</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> };</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> } <span class="comment">// end namespace driver</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> } <span class="comment">// end namespace clang</span></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> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInstance_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInstance_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInstance_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInstance_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1486 @@
+<!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: CompilerInstance.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_cfd7caa53089bfce4c036750f74ca8fe.html">Frontend</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilerInstance.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilerInstance_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">//===--- CompilerInstance.cpp ---------------------------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#include "<a class="code" href="CompilerInstance_8h.html">clang/Frontend/CompilerInstance.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor">#include "<a class="code" href="ASTConsumer_8h.html">clang/AST/ASTConsumer.h</a>"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include "<a class="code" href="ASTContext_8h.html" title="Defines the clang::ASTContext interface.">clang/AST/ASTContext.h</a>"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="preprocessor">#include "<a class="code" href="Decl_8h.html">clang/AST/Decl.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</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="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="FileManager_8h.html" title="Defines the clang::FileManager interface and associated types.">clang/Basic/FileManager.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="SourceManager_8h.html" title="Defines the SourceManager interface.">clang/Basic/SourceManager.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="include_2clang_2Basic_2TargetInfo_8h.html" title="Defines the clang::TargetInfo interface.">clang/Basic/TargetInfo.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</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="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="ChainedDiagnosticConsumer_8h.html">clang/Frontend/ChainedDiagnosticConsumer.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="FrontendAction_8h.html" title="Defines the clang::FrontendAction interface and various convenience abstract classes (clang::ASTFront...">clang/Frontend/FrontendAction.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="Frontend_2FrontendActions_8h.html">clang/Frontend/FrontendActions.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="FrontendDiagnostic_8h.html">clang/Frontend/FrontendDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="LogDiagnosticPrinter_8h.html">clang/Frontend/LogDiagnosticPrinter.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="SerializedDiagnosticPrinter_8h.html">clang/Frontend/SerializedDiagnosticPrinter.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="TextDiagnosticPrinter_8h.html">clang/Frontend/TextDiagnosticPrinter.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="Utils_8h.html">clang/Frontend/Utils.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "<a class="code" href="VerifyDiagnosticConsumer_8h.html">clang/Frontend/VerifyDiagnosticConsumer.h</a>"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "<a class="code" href="HeaderSearch_8h.html">clang/Lex/HeaderSearch.h</a>"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "<a class="code" href="PTHManager_8h.html">clang/Lex/PTHManager.h</a>"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include "<a class="code" href="CodeCompleteConsumer_8h.html">clang/Sema/CodeCompleteConsumer.h</a>"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "<a class="code" href="Sema_8h.html">clang/Sema/Sema.h</a>"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "<a class="code" href="ASTReader_8h.html">clang/Serialization/ASTReader.h</a>"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="preprocessor">#include "llvm/ADT/Statistic.h"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="preprocessor">#include "llvm/Config/config.h"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="preprocessor">#include "llvm/Support/CrashRecoveryContext.h"</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="preprocessor">#include "llvm/Support/FileSystem.h"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="preprocessor">#include "llvm/Support/Host.h"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="preprocessor">#include "llvm/Support/LockFileManager.h"</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="preprocessor">#include "llvm/Support/MemoryBuffer.h"</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="preprocessor">#include "llvm/Support/Path.h"</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="preprocessor">#include "llvm/Support/Program.h"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="preprocessor">#include "llvm/Support/Signals.h"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="preprocessor">#include "llvm/Support/Timer.h"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="preprocessor">#include "llvm/Support/system_error.h"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="preprocessor">#include <sys/stat.h></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="preprocessor">#include <time.h></span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a70ad0173059b3e4dad3477c2ee1160b5">   52</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#a70ad0173059b3e4dad3477c2ee1160b5">CompilerInstance::CompilerInstance</a>()</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   : Invocation(new <a class="code" href="classclang_1_1CompilerInvocation.html" title="Helper class for holding the data necessary to invoke the compiler.">CompilerInvocation</a>()), ModuleManager(0),</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     BuildGlobalModuleIndex(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), ModuleBuildFailed(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) {</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> }</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a6be158897bdf51cf00f5ebfc377321bf">   57</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#a6be158897bdf51cf00f5ebfc377321bf">CompilerInstance::~CompilerInstance</a>() {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   assert(OutputFiles.empty() && <span class="stringliteral">"Still output files in flight?"</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> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a68360c9e4e5ed0347161e082e609c6c9">   61</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a68360c9e4e5ed0347161e082e609c6c9" title="setInvocation - Replace the current invocation.">CompilerInstance::setInvocation</a>(<a class="code" href="classclang_1_1CompilerInvocation.html" title="Helper class for holding the data necessary to invoke the compiler.">CompilerInvocation</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   Invocation = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</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> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#aff3d247948dddc7e1e1c0938436904b1">   65</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CompilerInstance.html#aff3d247948dddc7e1e1c0938436904b1" title="Indicates whether we should (re)build the global module index.">CompilerInstance::shouldBuildGlobalModuleIndex</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   <span class="keywordflow">return</span> (BuildGlobalModuleIndex ||</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>           (ModuleManager && ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#acc6954b330483b6dfdb519d476e4d2c3" title="Determine whether we tried to load the global index, but failed, e.g., because it is out-of-date or d...">isGlobalIndexUnavailable</a>() &&</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>            <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#acface48e3ca73e16bc8569dec5c42839">GenerateGlobalModuleIndex</a>)) &&</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>          !ModuleBuildFailed;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> }</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a8fdc488bb99f44ae409dfdb951af6d02">   72</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a8fdc488bb99f44ae409dfdb951af6d02" title="setDiagnostics - Replace the current diagnostics engine.">CompilerInstance::setDiagnostics</a>(<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="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   Diagnostics = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</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> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a5972a3b70aeb763793685ddf6210dfd7">   76</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a5972a3b70aeb763793685ddf6210dfd7" title="Replace the current diagnostics engine.">CompilerInstance::setTarget</a>(<a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   Target = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> }</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a00535f0955b58840431fd633f856cdc4">   80</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a00535f0955b58840431fd633f856cdc4" title="setFileManager - Replace the current file manager.">CompilerInstance::setFileManager</a>(<a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   FileMgr = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> }</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a08d4c3c5277d0a97f2ae6e87ea7f6d68">   84</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a08d4c3c5277d0a97f2ae6e87ea7f6d68" title="setSourceManager - Replace the current source manager.">CompilerInstance::setSourceManager</a>(<a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</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> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a7b58b810af494368c8b1daf7fd23ca28">   88</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a7b58b810af494368c8b1daf7fd23ca28" title="Replace the current preprocessor.">CompilerInstance::setPreprocessor</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) { PP = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>; }</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a6a7a65f2595b1e2902b691bbf733a60d">   90</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a6a7a65f2595b1e2902b691bbf733a60d" title="setASTContext - Replace the current AST context.">CompilerInstance::setASTContext</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) { <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a> = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>; }</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a893e113ec2e48d9f4640f9276f969ae7">   92</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a893e113ec2e48d9f4640f9276f969ae7" title="Replace the current Sema; the compiler instance takes ownership of S.">CompilerInstance::setSema</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   TheSema.reset(S);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> }</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a50c6e094c9e80453ae9c2b2bb863e89a">   96</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a50c6e094c9e80453ae9c2b2bb863e89a">CompilerInstance::setASTConsumer</a>(<a class="code" href="classclang_1_1ASTConsumer.html">ASTConsumer</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   Consumer.reset(Value);</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"><a class="code" href="classclang_1_1CompilerInstance.html#aca5e4132b77ea34c3c7dbf2ec487ddeb">  100</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#aca5e4132b77ea34c3c7dbf2ec487ddeb">CompilerInstance::setCodeCompletionConsumer</a>(<a class="code" href="classclang_1_1CodeCompleteConsumer.html" title="Abstract interface for a consumer of code-completion information.">CodeCompleteConsumer</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) {</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   CompletionConsumer.reset(Value);</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="comment">// Diagnostics</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#aabc45a829cee974c807da90c3db82504">  105</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInstance_8cpp.html#aabc45a829cee974c807da90c3db82504">SetUpDiagnosticLog</a>(<a class="code" href="classclang_1_1DiagnosticOptions.html" title="Options for controlling the compiler diagnostics engine.">DiagnosticOptions</a> *DiagOpts,</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>                                <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGenOptions.html">CodeGenOptions</a> *CodeGenOpts,</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</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="l00108"></a><span class="lineno">  108</span>   std::string ErrorInfo;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <span class="keywordtype">bool</span> OwnsStream = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   raw_ostream *OS = &llvm::errs();</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   <span class="keywordflow">if</span> (DiagOpts->DiagnosticLogFile != <span class="stringliteral">"-"</span>) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>     <span class="comment">// Create the output stream.</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     llvm::raw_fd_ostream *FileOS(</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>         <span class="keyword">new</span> llvm::raw_fd_ostream(DiagOpts->DiagnosticLogFile.c_str(), ErrorInfo,</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>                                  llvm::sys::fs::F_Append));</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     <span class="keywordflow">if</span> (!ErrorInfo.empty()) {</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::warn_fe_cc_log_diagnostics_failure)</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>         << DiagOpts->DiagnosticLogFile << ErrorInfo;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>       FileOS->SetUnbuffered();</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>       FileOS->SetUseAtomicWrites(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>       OS = FileOS;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>       OwnsStream = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     }</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   }</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>   <span class="comment">// Chain in the diagnostic client which will log the diagnostics.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>   <a class="code" href="classclang_1_1LogDiagnosticPrinter.html">LogDiagnosticPrinter</a> *Logger = <span class="keyword">new</span> <a class="code" href="classclang_1_1LogDiagnosticPrinter.html">LogDiagnosticPrinter</a>(*OS, DiagOpts,</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>                                                           OwnsStream);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <span class="keywordflow">if</span> (CodeGenOpts)</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>     Logger-><a class="code" href="classclang_1_1LogDiagnosticPrinter.html#a45a00d3230751ac1a5b82b3542f1e6ca">setDwarfDebugFlags</a>(CodeGenOpts-><a class="code" href="classclang_1_1CodeGenOptions.html#af49d49949d74834d36d29de329174506">DwarfDebugFlags</a>);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a73d6622e8b775233db09bc294a4b1bb0" title="Set the diagnostic client associated with this diagnostic object.">setClient</a>(<span class="keyword">new</span> <a class="code" href="classclang_1_1ChainedDiagnosticConsumer.html">ChainedDiagnosticConsumer</a>(Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a780e0502793978b0621644934f057e7e" title="Return the current diagnostic client along with ownership of that client.">takeClient</a>(), Logger));</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> }</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#abe900893187849f546779a022200cb5b">  135</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInstance_8cpp.html#abe900893187849f546779a022200cb5b">SetupSerializedDiagnostics</a>(<a class="code" href="classclang_1_1DiagnosticOptions.html" title="Options for controlling the compiler diagnostics engine.">DiagnosticOptions</a> *DiagOpts,</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</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="l00137"></a><span class="lineno">  137</span>                                        StringRef OutputFile) {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   std::string ErrorInfo;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<llvm::raw_fd_ostream></a> OS;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   OS.reset(<span class="keyword">new</span> llvm::raw_fd_ostream(OutputFile.str().c_str(), ErrorInfo,</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>                                     llvm::sys::fs::F_Binary));</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>   <span class="keywordflow">if</span> (!ErrorInfo.empty()) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::warn_fe_serialized_diag_failure)</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>       << OutputFile << ErrorInfo;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>     <span class="keywordflow">return</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>   <a class="code" href="classclang_1_1DiagnosticConsumer.html" title="Abstract interface, implemented by clients of the front-end, which formats and prints fully processed...">DiagnosticConsumer</a> *SerializedConsumer =</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <a class="code" href="namespaceclang_1_1serialized__diags.html#a36bc44b1b04b3c0c421e02761c2d0282" title="Returns a DiagnosticConsumer that serializes diagnostics to a bitcode file.">clang::serialized_diags::create</a>(OS.take(), DiagOpts);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a73d6622e8b775233db09bc294a4b1bb0" title="Set the diagnostic client associated with this diagnostic object.">setClient</a>(<span class="keyword">new</span> <a class="code" href="classclang_1_1ChainedDiagnosticConsumer.html">ChainedDiagnosticConsumer</a>(Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a780e0502793978b0621644934f057e7e" title="Return the current diagnostic client along with ownership of that client.">takeClient</a>(),</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>                                                 SerializedConsumer));</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> }</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#ac82999fc69998009afeb1342e86b04b3">  157</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#ac82999fc69998009afeb1342e86b04b3">CompilerInstance::createDiagnostics</a>(<a class="code" href="classclang_1_1DiagnosticConsumer.html" title="Abstract interface, implemented by clients of the front-end, which formats and prints fully processed...">DiagnosticConsumer</a> *Client,</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>                                          <span class="keywordtype">bool</span> ShouldOwnClient) {</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   Diagnostics = <a class="code" href="classclang_1_1CompilerInstance.html#ac82999fc69998009afeb1342e86b04b3">createDiagnostics</a>(&<a class="code" href="classclang_1_1CompilerInstance.html#acb8b8d148ca4ece4ce11f6e1f038704b">getDiagnosticOpts</a>(), Client,</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>                                   ShouldOwnClient, &<a class="code" href="classclang_1_1CompilerInstance.html#a06174bfe2d28784f7b092e9b74bc3583">getCodeGenOpts</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> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<DiagnosticsEngine></a></div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#ae6a40802322ac9cb364769b526751433">  164</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#ac82999fc69998009afeb1342e86b04b3">CompilerInstance::createDiagnostics</a>(<a class="code" href="classclang_1_1DiagnosticOptions.html" title="Options for controlling the compiler diagnostics engine.">DiagnosticOptions</a> *Opts,</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>                                     <a class="code" href="classclang_1_1DiagnosticConsumer.html" title="Abstract interface, implemented by clients of the front-end, which formats and prints fully processed...">DiagnosticConsumer</a> *Client,</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>                                     <span class="keywordtype">bool</span> ShouldOwnClient,</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1CodeGenOptions.html">CodeGenOptions</a> *CodeGenOpts) {</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<DiagnosticIDs></a> DiagID(<span class="keyword">new</span> <a class="code" href="classclang_1_1DiagnosticIDs.html" title="Used for handling and querying diagnostic IDs.">DiagnosticIDs</a>());</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<DiagnosticsEngine></a></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>       Diags(<span class="keyword">new</span> <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a>(DiagID, Opts));</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>   <span class="comment">// Create the diagnostic client for reporting errors or for</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   <span class="comment">// implementing -verify.</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   <span class="keywordflow">if</span> (Client) {</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     Diags->setClient(Client, ShouldOwnClient);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     Diags->setClient(<span class="keyword">new</span> <a class="code" href="classclang_1_1TextDiagnosticPrinter.html">TextDiagnosticPrinter</a>(llvm::errs(), Opts));</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   <span class="comment">// Chain in -verify checker, if requested.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   <span class="keywordflow">if</span> (Opts->VerifyDiagnostics)</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     Diags->setClient(<span class="keyword">new</span> <a class="code" href="classclang_1_1VerifyDiagnosticConsumer.html">VerifyDiagnosticConsumer</a>(*Diags));</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="comment">// Chain in -diagnostic-log-file dumper, if requested.</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   <span class="keywordflow">if</span> (!Opts->DiagnosticLogFile.empty())</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>     <a class="code" href="CompilerInstance_8cpp.html#aabc45a829cee974c807da90c3db82504">SetUpDiagnosticLog</a>(Opts, CodeGenOpts, *Diags);</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>   <span class="keywordflow">if</span> (!Opts-><a class="code" href="classclang_1_1DiagnosticOptions.html#ad7135103df760c7acb2ad48dea74e08c" title="Limit depth of macro expansion backtrace.">DiagnosticSerializationFile</a>.empty())</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>     <a class="code" href="CompilerInstance_8cpp.html#abe900893187849f546779a022200cb5b">SetupSerializedDiagnostics</a>(Opts, *Diags,</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>                                Opts-><a class="code" href="classclang_1_1DiagnosticOptions.html#ad7135103df760c7acb2ad48dea74e08c" title="Limit depth of macro expansion backtrace.">DiagnosticSerializationFile</a>);</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   <span class="comment">// Configure our handling of diagnostics.</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   <a class="code" href="namespaceclang.html#a2eac92f50469af565dbfb390534b2ffd">ProcessWarningOptions</a>(*Diags, *Opts);</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <span class="keywordflow">return</span> Diags;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> }</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">// File Manager</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a47b768cd640f10d3e04611116c033e00">  199</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a47b768cd640f10d3e04611116c033e00" title="Create the file manager and replace any existing one with it.">CompilerInstance::createFileManager</a>() {</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   FileMgr = <span class="keyword">new</span> <a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a>(<a class="code" href="classclang_1_1CompilerInstance.html#a16328bd5d143b93c65bc1b5790fc0c11">getFileSystemOpts</a>());</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> }</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">// Source Manager</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="classclang_1_1CompilerInstance.html#a15caea4e8b2072a112e86bc02570683b">  205</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a15caea4e8b2072a112e86bc02570683b" title="Create the source manager and replace any existing one with it.">CompilerInstance::createSourceManager</a>(<a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> &FileMgr) {</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>   <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a> = <span class="keyword">new</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a>(<a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>(), FileMgr);</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">// Preprocessor</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"><a class="code" href="classclang_1_1CompilerInstance.html#aaf00e96c0d4a3b3c7301bbf08e35e37d">  211</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#aaf00e96c0d4a3b3c7301bbf08e35e37d">CompilerInstance::createPreprocessor</a>() {</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> &PPOpts = <a class="code" href="classclang_1_1CompilerInstance.html#a44f5c8763eb8a46ac41b13e2a56fde24">getPreprocessorOpts</a>();</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <span class="comment">// Create a PTH manager if we are using some form of a token cache.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a> *PTHMgr = 0;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   <span class="keywordflow">if</span> (!PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ac38e47eee0f784a0d059cffb5d5e568d" title="If given, a PTH cache file to use for speeding up header parsing.">TokenCache</a>.empty())</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>     PTHMgr = <a class="code" href="classclang_1_1PTHManager.html#aed12bd5f5b8b0c49ed96012ce8743d0a">PTHManager::Create</a>(PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ac38e47eee0f784a0d059cffb5d5e568d" title="If given, a PTH cache file to use for speeding up header parsing.">TokenCache</a>, <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>());</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>   <span class="comment">// Create the Preprocessor.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   <a class="code" href="classclang_1_1HeaderSearch.html" title="Encapsulates the information needed to find the file referenced by a #include or #include_next, (sub-)framework lookup, etc.">HeaderSearch</a> *HeaderInfo = <span class="keyword">new</span> <a class="code" href="classclang_1_1HeaderSearch.html" title="Encapsulates the information needed to find the file referenced by a #include or #include_next, (sub-)framework lookup, etc.">HeaderSearch</a>(&<a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>(),</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>                                               <a class="code" href="classclang_1_1CompilerInstance.html#abf40d415ec33174b74655a2f14dda0c2" title="Return the current source manager.">getSourceManager</a>(),</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>                                               <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>(),</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>                                               <a class="code" href="classclang_1_1CompilerInstance.html#ac9b612115b0b8bcef7e53fd8078ccecb">getLangOpts</a>(),</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>                                               &<a class="code" href="classclang_1_1CompilerInstance.html#ab733722f416a30b1ed7550c1555dbf80">getTarget</a>());</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   PP = <span class="keyword">new</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a>(&<a class="code" href="classclang_1_1CompilerInstance.html#a44f5c8763eb8a46ac41b13e2a56fde24">getPreprocessorOpts</a>(),</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>                         <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>(), <a class="code" href="classclang_1_1CompilerInstance.html#ac9b612115b0b8bcef7e53fd8078ccecb">getLangOpts</a>(), &<a class="code" href="classclang_1_1CompilerInstance.html#ab733722f416a30b1ed7550c1555dbf80">getTarget</a>(),</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>                         <a class="code" href="classclang_1_1CompilerInstance.html#abf40d415ec33174b74655a2f14dda0c2" title="Return the current source manager.">getSourceManager</a>(), *HeaderInfo, *<span class="keyword">this</span>, PTHMgr,</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>                         <span class="comment">/*OwnsHeaderSearch=*/</span><span class="keyword">true</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>   <span class="comment">// Note that this is different then passing PTHMgr to Preprocessor's ctor.</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>   <span class="comment">// That argument is used as the IdentifierInfoLookup argument to</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   <span class="comment">// IdentifierTable's ctor.</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>   <span class="keywordflow">if</span> (PTHMgr) {</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>     PTHMgr-><a class="code" href="classclang_1_1PTHManager.html#a59cd2e920a4018ec6046628dbb5977d4">setPreprocessor</a>(&*PP);</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>     PP->setPTHManager(PTHMgr);</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   }</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>   <span class="keywordflow">if</span> (PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#af9425f8ba984d1f17bbf5417bb45fb94" title="Whether we should maintain a detailed record of all macro definitions and expansions.">DetailedRecord</a>)</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     PP->createPreprocessingRecord();</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>   <a class="code" href="namespaceclang.html#ad19e5c8c5ca1dfbd51ca63cde5d35040">InitializePreprocessor</a>(*PP, PPOpts, <a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>(), <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>());</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>   PP->setPreprocessedOutput(<a class="code" href="classclang_1_1CompilerInstance.html#ad37f8efd6888104972ff208ecb31b03d">getPreprocessorOutputOpts</a>().ShowCPP);</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="comment">// Set up the module path, including the hash for the</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   <span class="comment">// module-creation options.</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<256></a> SpecificModuleCache(</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>                            <a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>().ModuleCachePath);</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>().DisableModuleHash)</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>     llvm::sys::path::append(SpecificModuleCache,</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>                             <a class="code" href="classclang_1_1CompilerInstance.html#a171249f941c6c546049f4b6107c84d6e">getInvocation</a>().getModuleHash());</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>   PP->getHeaderSearchInfo().setModuleCachePath(SpecificModuleCache);</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>   <span class="comment">// Handle generating dependencies, if requested.</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DependencyOutputOptions.html">DependencyOutputOptions</a> &DepOpts = <a class="code" href="classclang_1_1CompilerInstance.html#a4b696fa1eebedae2380fb763740ef4f7">getDependencyOutputOpts</a>();</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   <span class="keywordflow">if</span> (!DepOpts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a2af2e55d7c3155825e5f8882978b4222" title="The file to write dependency output to.">OutputFile</a>.empty())</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>     <a class="code" href="namespaceclang.html#a90c072bfda97283b467c528c20968e75">AttachDependencyFileGen</a>(*PP, DepOpts);</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>   <span class="keywordflow">if</span> (!DepOpts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a10c207bd3f0c997a884b605890405eef" title="The file to write GraphViz-formatted header dependencies to.">DOTOutputFile</a>.empty())</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     <a class="code" href="namespaceclang.html#afbf09b7d8500b4e67e3247c66cf013e6">AttachDependencyGraphGen</a>(*PP, DepOpts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a10c207bd3f0c997a884b605890405eef" title="The file to write GraphViz-formatted header dependencies to.">DOTOutputFile</a>,</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>                              <a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>().<a class="code" href="classclang_1_1HeaderSearchOptions.html#a7b2c49429c3e24836a745727bd14dfbb">Sysroot</a>);</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> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>   <span class="comment">// Handle generating header include information, if requested.</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>   <span class="keywordflow">if</span> (DepOpts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#aefbe7389a301106e13606651c48f78e6" title="Show header inclusions (-H).">ShowHeaderIncludes</a>)</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>     <a class="code" href="namespaceclang.html#a2df996d001d7184af14a7c1d55ee161d">AttachHeaderIncludeGen</a>(*PP);</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>   <span class="keywordflow">if</span> (!DepOpts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a96f159d9012a1618571204a7cd0db98b">HeaderIncludeOutputFile</a>.empty()) {</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>     StringRef OutputPath = DepOpts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#a96f159d9012a1618571204a7cd0db98b">HeaderIncludeOutputFile</a>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>     <span class="keywordflow">if</span> (OutputPath == <span class="stringliteral">"-"</span>)</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>       OutputPath = <span class="stringliteral">""</span>;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>     <a class="code" href="namespaceclang.html#a2df996d001d7184af14a7c1d55ee161d">AttachHeaderIncludeGen</a>(*PP, <span class="comment">/*ShowAllHeaders=*/</span><span class="keyword">true</span>, OutputPath,</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>                            <span class="comment">/*ShowDepth=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>   }</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>   <span class="keywordflow">if</span> (DepOpts.<a class="code" href="classclang_1_1DependencyOutputOptions.html#ac8b7c89a078d0fd46929a8a784016604" title="Print cl.exe style /showIncludes info.">PrintShowIncludes</a>) {</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>     <a class="code" href="namespaceclang.html#a2df996d001d7184af14a7c1d55ee161d">AttachHeaderIncludeGen</a>(*PP, <span class="comment">/*ShowAllHeaders=*/</span><span class="keyword">false</span>, <span class="comment">/*OutputPath=*/</span><span class="stringliteral">""</span>,</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>                            <span class="comment">/*ShowDepth=*/</span><span class="keyword">true</span>, <span class="comment">/*MSStyle=*/</span><span class="keyword">true</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> }</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> <span class="comment">// ASTContext</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a609e1bbc05d1fc2ca7a8d5d3146b5dd1">  282</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a609e1bbc05d1fc2ca7a8d5d3146b5dd1" title="Create the AST context.">CompilerInstance::createASTContext</a>() {</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP = <a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>();</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>   <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a> = <span class="keyword">new</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a>(<a class="code" href="classclang_1_1CompilerInstance.html#ac9b612115b0b8bcef7e53fd8078ccecb">getLangOpts</a>(), PP.<a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>(),</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>                            &<a class="code" href="classclang_1_1CompilerInstance.html#ab733722f416a30b1ed7550c1555dbf80">getTarget</a>(), PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>(),</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>                            PP.<a class="code" href="classclang_1_1Preprocessor.html#a9898deb1beddca551b9bef352cf77e9f">getSelectorTable</a>(), PP.<a class="code" href="classclang_1_1Preprocessor.html#ae0c2b1c4fa862c2825d71417de5313a2">getBuiltinInfo</a>(),</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>                            <span class="comment">/*size_reserve=*/</span> 0);</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> </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">// ExternalASTSource</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a8345dcc7025740f618f0d55f5fa99282">  292</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a8345dcc7025740f618f0d55f5fa99282">CompilerInstance::createPCHExternalASTSource</a>(StringRef Path,</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>                                                   <span class="keywordtype">bool</span> DisablePCHValidation,</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>                                                 <span class="keywordtype">bool</span> AllowPCHWithCompilerErrors,</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>                                                  <span class="keywordtype">void</span> *DeserializationListener){</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<ExternalASTSource></a> Source;</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>   <span class="keywordtype">bool</span> Preamble = <a class="code" href="classclang_1_1CompilerInstance.html#a44f5c8763eb8a46ac41b13e2a56fde24">getPreprocessorOpts</a>().<a class="code" href="classclang_1_1PreprocessorOptions.html#a24671d094917020114917c55ee0c7a11" title="If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of b...">PrecompiledPreambleBytes</a>.first != 0;</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>   Source.reset(<a class="code" href="classclang_1_1CompilerInstance.html#a8345dcc7025740f618f0d55f5fa99282">createPCHExternalASTSource</a>(Path, <a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>().Sysroot,</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>                                           DisablePCHValidation,</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>                                           AllowPCHWithCompilerErrors,</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>                                           <a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>(), <a class="code" href="classclang_1_1CompilerInstance.html#a48b17496817d8a900aaebf55ed16fd56">getASTContext</a>(),</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>                                           DeserializationListener,</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>                                           Preamble,</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>                                        <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().UseGlobalModuleIndex));</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>   ModuleManager = <span class="keyword">static_cast<</span><a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a>*<span class="keyword">></span>(Source.get());</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>   <a class="code" href="classclang_1_1CompilerInstance.html#a48b17496817d8a900aaebf55ed16fd56">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a9f13d96b21dad7c71264f23a8cf05c1d" title="Attach an external AST source to the AST context.">setExternalSource</a>(Source);</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> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <a class="code" href="classclang_1_1ExternalASTSource.html" title="Abstract interface for external sources of AST nodes.">ExternalASTSource</a> *</div>
+<div class="line"><a name="l00310"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a3b71e490a7271f9d88e398e7cb3ef6c2">  310</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#a8345dcc7025740f618f0d55f5fa99282">CompilerInstance::createPCHExternalASTSource</a>(StringRef Path,</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>                                              <span class="keyword">const</span> std::string &Sysroot,</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>                                              <span class="keywordtype">bool</span> DisablePCHValidation,</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>                                              <span class="keywordtype">bool</span> AllowPCHWithCompilerErrors,</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>                                              <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP,</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>                                              <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>,</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>                                              <span class="keywordtype">void</span> *DeserializationListener,</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>                                              <span class="keywordtype">bool</span> Preamble,</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>                                              <span class="keywordtype">bool</span> UseGlobalModuleIndex) {</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<ASTReader></a> Reader;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>   Reader.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a>(PP, Context,</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>                              Sysroot.empty() ? <span class="stringliteral">""</span> : Sysroot.c_str(),</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>                              DisablePCHValidation,</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>                              AllowPCHWithCompilerErrors,</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>                              UseGlobalModuleIndex));</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>   Reader->setDeserializationListener(</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>             static_cast<ASTDeserializationListener *>(DeserializationListener));</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>   <span class="keywordflow">switch</span> (Reader->ReadAST(Path,</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>                           Preamble ? <a class="code" href="namespaceclang_1_1serialization.html#ac4e913a3b4b4721b8995cb7dd6d9bb1ea53fc1233721074698c4b1ff9b78cc35d" title="File is a PCH file treated as the preamble.">serialization::MK_Preamble</a></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>                                    : <a class="code" href="namespaceclang_1_1serialization.html#ac4e913a3b4b4721b8995cb7dd6d9bb1ea3be10581dcaa249a8ba0d5c740b18e49" title="File is a PCH file treated as such.">serialization::MK_PCH</a>,</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>                           <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(),</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>                           <a class="code" href="classclang_1_1ASTReader.html#a1ef10402198040c36f537a57bc633ca0a2d2271af889b513da2da100a2ede0194" title="The client can't handle any AST loading failures.">ASTReader::ARR_None</a>)) {</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243a22a203378a875589f6013335def54572" title="The control block was read successfully. Aside from failures, the AST file is safe to read into the c...">ASTReader::Success</a>:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>     <span class="comment">// Set the predefines buffer as suggested by the PCH reader. Typically, the</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>     <span class="comment">// predefines buffer will be empty.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#ac30753bca7cb4d7a2cf92ea9ed91266a">setPredefines</a>(Reader->getSuggestedPredefines());</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     <span class="keywordflow">return</span> Reader.take();</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>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243ad2ad62e53379946597e50d557e8ef953" title="The AST file itself appears corrupted.">ASTReader::Failure</a>:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     <span class="comment">// Unrecoverable failure: don't even try to process the input file.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243aec84e2a366d426f45d8d9e9e2509bfb2" title="The AST file was missing.">ASTReader::Missing</a>:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243a955fa046aaf1f1a1a5c48d21c24e8863" title="The AST file is out-of-date relative to its input files, and needs to be regenerated.">ASTReader::OutOfDate</a>:</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243ae145b87ff56754261c9f144c9d0adf73" title="The AST file was written by a different version of Clang.">ASTReader::VersionMismatch</a>:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243a2b295dac09a7e70bca0730292a5ed436" title="The AST file was writtten with a different language/target configuration.">ASTReader::ConfigurationMismatch</a>:</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243aea1a4079a594b06c0f15d4d670bef68d" title="The AST file has errors.">ASTReader::HadErrors</a>:</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>     <span class="comment">// No suitable PCH file could be found. Return an error.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>     <span class="keywordflow">break</span>;</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> </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>   <span class="keywordflow">return</span> 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> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">// Code Completion</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#a4fd4fcb6d2c73f371d6bbb9a6b2b7f1c">  357</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="CompilerInstance_8cpp.html#a4fd4fcb6d2c73f371d6bbb9a6b2b7f1c">EnableCodeCompletion</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP,</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>                                  <span class="keyword">const</span> std::string &Filename,</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>                                  <span class="keywordtype">unsigned</span> <a class="code" href="TokenAnnotator_8cpp.html#a0d95c6acfc477accd6ff1b1ca93c82cc">Line</a>,</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>                                  <span class="keywordtype">unsigned</span> <a class="code" href="Format_8cpp.html#a1eea5be0eff1070e17b69bc5b9f281ae">Column</a>) {</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>   <span class="comment">// Tell the source manager to chop off the given file at a specific</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>   <span class="comment">// line and column.</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *Entry = PP.<a class="code" href="classclang_1_1Preprocessor.html#a07eb04f847b5976cec8b174764b99424">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(Filename);</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>   <span class="keywordflow">if</span> (!Entry) {</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a663f9d8c8151906a9bf39954f3d15c60">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_fe_invalid_code_complete_file)</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>       << Filename;</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>   }</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>   <span class="comment">// Truncate the named file at the given line/column.</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a1abbdd2242de8f626c725303ba41f245" title="Specify the point at which code-completion will be performed.">SetCodeCompletionPoint</a>(Entry, Line, Column);</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> }</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#ac904ee99857a16e4770b4dc130aaa859">  375</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#ac904ee99857a16e4770b4dc130aaa859">CompilerInstance::createCodeCompletionConsumer</a>() {</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>   <span class="keyword">const</span> <a class="code" href="structclang_1_1ParsedSourceLocation.html" title="A source location that has been parsed on the command line.">ParsedSourceLocation</a> &Loc = <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#a903a24bd127beba3fdd54b84329a5a27" title="If given, enable code completion at the provided location.">CodeCompletionAt</a>;</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>   <span class="keywordflow">if</span> (!CompletionConsumer) {</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>     <a class="code" href="classclang_1_1CompilerInstance.html#aca5e4132b77ea34c3c7dbf2ec487ddeb">setCodeCompletionConsumer</a>(</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>       <a class="code" href="classclang_1_1CompilerInstance.html#ac904ee99857a16e4770b4dc130aaa859">createCodeCompletionConsumer</a>(<a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>(),</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>                                    Loc.<a class="code" href="structclang_1_1ParsedSourceLocation.html#a917c224d7d608bc1cf3aebdf4a0cbf7f">FileName</a>, Loc.<a class="code" href="structclang_1_1ParsedSourceLocation.html#a06f4d9edc6baa398219dc2ba702f22ed">Line</a>, Loc.<a class="code" href="structclang_1_1ParsedSourceLocation.html#a9b37cc5758c96017fc78fe52aec95c29">Column</a>,</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>                                    <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().CodeCompleteOpts,</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>                                    llvm::outs()));</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>     <span class="keywordflow">if</span> (!CompletionConsumer)</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="CompilerInstance_8cpp.html#a4fd4fcb6d2c73f371d6bbb9a6b2b7f1c">EnableCodeCompletion</a>(<a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>(), Loc.<a class="code" href="structclang_1_1ParsedSourceLocation.html#a917c224d7d608bc1cf3aebdf4a0cbf7f">FileName</a>,</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>                                   Loc.<a class="code" href="structclang_1_1ParsedSourceLocation.html#a06f4d9edc6baa398219dc2ba702f22ed">Line</a>, Loc.<a class="code" href="structclang_1_1ParsedSourceLocation.html#a9b37cc5758c96017fc78fe52aec95c29">Column</a>)) {</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>     <a class="code" href="classclang_1_1CompilerInstance.html#aca5e4132b77ea34c3c7dbf2ec487ddeb">setCodeCompletionConsumer</a>(0);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>   }</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>   <span class="keywordflow">if</span> (CompletionConsumer->isOutputBinary() &&</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>       llvm::sys::ChangeStdoutToBinary()) {</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>     <a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>().<a class="code" href="classclang_1_1Preprocessor.html#a663f9d8c8151906a9bf39954f3d15c60">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_fe_stdout_binary);</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>     <a class="code" href="classclang_1_1CompilerInstance.html#aca5e4132b77ea34c3c7dbf2ec487ddeb">setCodeCompletionConsumer</a>(0);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   }</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> }</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a8de263254d773b48145b9ad36d70a50f">  398</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#a8de263254d773b48145b9ad36d70a50f" title="Create the frontend timer and replace any existing one with it.">CompilerInstance::createFrontendTimer</a>() {</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>   FrontendTimer.reset(<span class="keyword">new</span> llvm::Timer(<span class="stringliteral">"Clang front-end timer"</span>));</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> }</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <a class="code" href="classclang_1_1CodeCompleteConsumer.html" title="Abstract interface for a consumer of code-completion information.">CodeCompleteConsumer</a> *</div>
+<div class="line"><a name="l00403"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#af02a980b98891ca2bd6b8167397a0929">  403</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#ac904ee99857a16e4770b4dc130aaa859">CompilerInstance::createCodeCompletionConsumer</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP,</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>                                                <span class="keyword">const</span> std::string &Filename,</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>                                                <span class="keywordtype">unsigned</span> <a class="code" href="TokenAnnotator_8cpp.html#a0d95c6acfc477accd6ff1b1ca93c82cc">Line</a>,</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>                                                <span class="keywordtype">unsigned</span> <a class="code" href="Format_8cpp.html#a1eea5be0eff1070e17b69bc5b9f281ae">Column</a>,</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>                                                <span class="keyword">const</span> <a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a> &Opts,</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>                                                raw_ostream &OS) {</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>   <span class="keywordflow">if</span> (<a class="code" href="CompilerInstance_8cpp.html#a4fd4fcb6d2c73f371d6bbb9a6b2b7f1c">EnableCodeCompletion</a>(PP, Filename, Line, Column))</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>     <span class="keywordflow">return</span> 0;</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">// Set up the creation routine for code-completion.</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1PrintingCodeCompleteConsumer.html" title="A simple code-completion consumer that prints the results it receives in a simple format...">PrintingCodeCompleteConsumer</a>(Opts, OS);</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> </div>
+<div class="line"><a name="l00416"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#affc162b6099312dfb93c3383ca48e014">  416</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#affc162b6099312dfb93c3383ca48e014" title="Create the Sema object to be used for parsing.">CompilerInstance::createSema</a>(<a class="code" href="namespaceclang.html#aac1b714ac14290e6a552b6953c3b5f21" title="Describes the kind of translation unit being processed.">TranslationUnitKind</a> TUKind,</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>                                   <a class="code" href="classclang_1_1CodeCompleteConsumer.html" title="Abstract interface for a consumer of code-completion information.">CodeCompleteConsumer</a> *CompletionConsumer) {</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>   TheSema.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a>(<a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>(), <a class="code" href="classclang_1_1CompilerInstance.html#a48b17496817d8a900aaebf55ed16fd56">getASTContext</a>(), <a class="code" href="classclang_1_1CompilerInstance.html#a78c9529f4540cd51a0a4cfa3be414300">getASTConsumer</a>(),</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>                          TUKind, CompletionConsumer));</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> }</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> <span class="comment">// Output Files</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> </div>
+<div class="line"><a name="l00424"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#ad4e717b11a063450e48140d1a893f221">  424</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#ad4e717b11a063450e48140d1a893f221">CompilerInstance::addOutputFile</a>(<span class="keyword">const</span> OutputFile &OutFile) {</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>   assert(OutFile.OS && <span class="stringliteral">"Attempt to add empty stream to output list!"</span>);</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>   OutputFiles.push_back(OutFile);</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"><a class="code" href="classclang_1_1CompilerInstance.html#ad0d4578fb5e22cfe0f831024b88dc48c">  429</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#ad0d4578fb5e22cfe0f831024b88dc48c">CompilerInstance::clearOutputFiles</a>(<span class="keywordtype">bool</span> EraseFiles) {</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="keywordflow">for</span> (std::list<OutputFile>::iterator</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>          it = OutputFiles.begin(), ie = OutputFiles.end(); it != ie; ++it) {</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>     <span class="keyword">delete</span> it->OS;</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>     <span class="keywordflow">if</span> (!it->TempFilename.empty()) {</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>       <span class="keywordflow">if</span> (EraseFiles) {</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>         <span class="keywordtype">bool</span> existed;</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>         llvm::sys::fs::remove(it->TempFilename, existed);</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>         <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> NewOutFile(it->Filename);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> </div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>         <span class="comment">// If '-working-directory' was passed, the output filename should be</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>         <span class="comment">// relative to that.</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>         FileMgr->FixupRelativePath(NewOutFile);</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>         <span class="keywordflow">if</span> (llvm::error_code ec = llvm::sys::fs::rename(it->TempFilename,</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>                                                         NewOutFile.str())) {</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>           <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_unable_to_rename_temp)</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>             << it->TempFilename << it->Filename << ec.message();</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> </div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>           <span class="keywordtype">bool</span> existed;</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>           llvm::sys::fs::remove(it->TempFilename, existed);</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>         }</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>       }</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!it->Filename.empty() && EraseFiles)</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>       llvm::sys::fs::remove(it->Filename);</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   }</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>   OutputFiles.clear();</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> llvm::raw_fd_ostream *</div>
+<div class="line"><a name="l00460"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a535ef040ac418827964c9cc51da07cb9">  460</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#a535ef040ac418827964c9cc51da07cb9">CompilerInstance::createDefaultOutputFile</a>(<span class="keywordtype">bool</span> Binary,</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>                                           StringRef InFile,</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>                                           StringRef Extension) {</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CompilerInstance.html#a58cdc44d684cb2473602b130f40a2219">createOutputFile</a>(<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().OutputFile, Binary,</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>                           <span class="comment">/*RemoveFileOnSignal=*/</span><span class="keyword">true</span>, InFile, Extension,</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>                           <span class="comment">/*UseTemporary=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> }</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> </div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> llvm::raw_fd_ostream *</div>
+<div class="line"><a name="l00469"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a58cdc44d684cb2473602b130f40a2219">  469</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#a58cdc44d684cb2473602b130f40a2219">CompilerInstance::createOutputFile</a>(StringRef OutputPath,</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>                                    <span class="keywordtype">bool</span> Binary, <span class="keywordtype">bool</span> RemoveFileOnSignal,</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>                                    StringRef InFile,</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>                                    StringRef Extension,</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>                                    <span class="keywordtype">bool</span> UseTemporary,</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>                                    <span class="keywordtype">bool</span> CreateMissingDirectories) {</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>   std::string Error, OutputPathName, TempPathName;</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>   llvm::raw_fd_ostream *OS = <a class="code" href="classclang_1_1CompilerInstance.html#a58cdc44d684cb2473602b130f40a2219">createOutputFile</a>(OutputPath, Error, Binary,</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>                                               RemoveFileOnSignal,</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>                                               InFile, Extension,</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>                                               UseTemporary,</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>                                               CreateMissingDirectories,</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>                                               &OutputPathName,</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>                                               &TempPathName);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>   <span class="keywordflow">if</span> (!OS) {</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>     <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_fe_unable_to_open_output)</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>       << OutputPath << Error;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   }</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>   <span class="comment">// Add the output file -- but don't try to remove "-", since this means we are</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>   <span class="comment">// using stdin.</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>   <a class="code" href="classclang_1_1CompilerInstance.html#ad4e717b11a063450e48140d1a893f221">addOutputFile</a>(OutputFile((OutputPathName != <span class="stringliteral">"-"</span>) ? OutputPathName : <span class="stringliteral">""</span>,</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>                 TempPathName, OS));</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>   <span class="keywordflow">return</span> OS;</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> }</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> llvm::raw_fd_ostream *</div>
+<div class="line"><a name="l00498"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a263ddd4c92ad098e2b7a60ae25a2a49c">  498</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#a58cdc44d684cb2473602b130f40a2219">CompilerInstance::createOutputFile</a>(StringRef OutputPath,</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>                                    std::string &Error,</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>                                    <span class="keywordtype">bool</span> Binary,</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>                                    <span class="keywordtype">bool</span> RemoveFileOnSignal,</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>                                    StringRef InFile,</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>                                    StringRef Extension,</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>                                    <span class="keywordtype">bool</span> UseTemporary,</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>                                    <span class="keywordtype">bool</span> CreateMissingDirectories,</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>                                    std::string *ResultPathName,</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>                                    std::string *TempPathName) {</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>   assert((!CreateMissingDirectories || UseTemporary) &&</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>          <span class="stringliteral">"CreateMissingDirectories is only allowed when using temporary files"</span>);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>   std::string OutFile, TempFile;</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>   <span class="keywordflow">if</span> (!OutputPath.empty()) {</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>     OutFile = OutputPath;</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (InFile == <span class="stringliteral">"-"</span>) {</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>     OutFile = <span class="stringliteral">"-"</span>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!Extension.empty()) {</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> Path(InFile);</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>     llvm::sys::path::replace_extension(Path, Extension);</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>     OutFile = Path.str();</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>     OutFile = <span class="stringliteral">"-"</span>;</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>   }</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> </div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<llvm::raw_fd_ostream></a> OS;</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>   std::string OSFile;</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>   <span class="keywordflow">if</span> (UseTemporary) {</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>     <span class="keywordflow">if</span> (OutFile == <span class="stringliteral">"-"</span>)</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>       UseTemporary = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>       llvm::sys::fs::file_status Status;</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>       llvm::sys::fs::status(OutputPath, Status);</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>       <span class="keywordflow">if</span> (llvm::sys::fs::exists(Status)) {</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>         <span class="comment">// Fail early if we can't write to the final destination.</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>         <span class="keywordflow">if</span> (!llvm::sys::fs::can_write(OutputPath))</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>           <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>         <span class="comment">// Don't use a temporary if the output is a special file. This handles</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>         <span class="comment">// things like '-o /dev/null'</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>         <span class="keywordflow">if</span> (!llvm::sys::fs::is_regular_file(Status))</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>           UseTemporary = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>       }</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>     }</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>   }</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>   <span class="keywordflow">if</span> (UseTemporary) {</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>     <span class="comment">// Create a temporary file.</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> TempPath;</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>     TempPath = OutFile;</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>     TempPath += <span class="stringliteral">"-%%%%%%%%"</span>;</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>     <span class="keywordtype">int</span> fd;</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>     llvm::error_code EC =</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>         llvm::sys::fs::createUniqueFile(TempPath.str(), fd, TempPath);</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> </div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>     <span class="keywordflow">if</span> (CreateMissingDirectories &&</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>         EC == llvm::errc::no_such_file_or_directory) {</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>       StringRef Parent = llvm::sys::path::parent_path(OutputPath);</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>       EC = llvm::sys::fs::create_directories(Parent);</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>       <span class="keywordflow">if</span> (!EC) {</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>         EC = llvm::sys::fs::createUniqueFile(TempPath.str(), fd, TempPath);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>       }</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>     }</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> </div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>     <span class="keywordflow">if</span> (!EC) {</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>       OS.reset(<span class="keyword">new</span> llvm::raw_fd_ostream(fd, <span class="comment">/*shouldClose=*/</span><span class="keyword">true</span>));</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>       OSFile = TempFile = TempPath.str();</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>     <span class="comment">// If we failed to create the temporary, fallback to writing to the file</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>     <span class="comment">// directly. This handles the corner case where we cannot write to the</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>     <span class="comment">// directory, but can write to the file.</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>   }</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> </div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>   <span class="keywordflow">if</span> (!OS) {</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>     OSFile = OutFile;</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>     OS.reset(<span class="keyword">new</span> llvm::raw_fd_ostream(</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>         OSFile.c_str(), Error,</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>         (Binary ? llvm::sys::fs::F_Binary : llvm::sys::fs::F_None)));</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>     <span class="keywordflow">if</span> (!Error.empty())</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>   }</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>   <span class="comment">// Make sure the out stream file gets removed if we crash.</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>   <span class="keywordflow">if</span> (RemoveFileOnSignal)</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>     llvm::sys::RemoveFileOnSignal(OSFile);</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>   <span class="keywordflow">if</span> (ResultPathName)</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>     *ResultPathName = OutFile;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>   <span class="keywordflow">if</span> (TempPathName)</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>     *TempPathName = TempFile;</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>   <span class="keywordflow">return</span> OS.take();</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</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">// Initialization Utilities</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a47099b8fb4b33df61ffaefa673a4ae98">  596</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CompilerInstance.html#a47099b8fb4b33df61ffaefa673a4ae98">CompilerInstance::InitializeSourceManager</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FrontendInputFile.html" title="An input file for the front end.">FrontendInputFile</a> &<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>){</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CompilerInstance.html#a47099b8fb4b33df61ffaefa673a4ae98">InitializeSourceManager</a>(Input, <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>(),</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>                                  <a class="code" href="classclang_1_1CompilerInstance.html#a96a6364c197bbfb7a9c38084234f19fe" title="Return the current file manager to the caller.">getFileManager</a>(), <a class="code" href="classclang_1_1CompilerInstance.html#abf40d415ec33174b74655a2f14dda0c2" title="Return the current source manager.">getSourceManager</a>(), </div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>                                  <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>());</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> }</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span> </div>
+<div class="line"><a name="l00602"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a8b62d78a081c125af01a08c0c7122a70">  602</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CompilerInstance.html#a47099b8fb4b33df61ffaefa673a4ae98">CompilerInstance::InitializeSourceManager</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FrontendInputFile.html" title="An input file for the front end.">FrontendInputFile</a> &<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>,</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</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="l00604"></a><span class="lineno">  604</span>                                                <a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> &FileMgr,</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>                                                <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>,</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>                                                <span class="keyword">const</span> <a class="code" href="classclang_1_1FrontendOptions.html" title="FrontendOptions - Options for controlling the behavior of the frontend.">FrontendOptions</a> &Opts) {</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>   <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>     <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = Input.<a class="code" href="classclang_1_1FrontendInputFile.html#aa543b47758abf1a09e612c6250133cdc">isSystem</a>() ? <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dac3b930a303c855d8864c56fcc992074e">SrcMgr::C_System</a> : <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>;</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> </div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>   <span class="keywordflow">if</span> (Input.<a class="code" href="classclang_1_1FrontendInputFile.html#acce9aab83a773666e53ca77b1c132283">isBuffer</a>()) {</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>     SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ae3e67280d1ff333470c8104ecf4e2b9e" title="Create the FileID for a memory buffer that will represent the FileID for the main source...">createMainFileIDForMemBuffer</a>(Input.<a class="code" href="classclang_1_1FrontendInputFile.html#ad8709fbf3a8183c3d5dc7cc517072e6c">getBuffer</a>(), <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>);</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>     assert(!SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ad3ac47ab7380c82d19243a2db765479c" title="Returns the FileID of the main source file.">getMainFileID</a>().<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>() &&</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>            <span class="stringliteral">"Couldn't establish MainFileID!"</span>);</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>   }</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>   StringRef InputFile = Input.<a class="code" href="classclang_1_1FrontendInputFile.html#a63b255666956f6c99367dcbdf0422bbe">getFile</a>();</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> </div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>   <span class="comment">// Figure out where to get and map in the main file.</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>   <span class="keywordflow">if</span> (InputFile != <span class="stringliteral">"-"</span>) {</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File = FileMgr.<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(InputFile, <span class="comment">/*OpenFile=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>     <span class="keywordflow">if</span> (!File) {</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_fe_error_reading) << InputFile;</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>     }</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> </div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>     <span class="comment">// The natural SourceManager infrastructure can't currently handle named</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>     <span class="comment">// pipes, but we would at least like to accept them for the main</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     <span class="comment">// file. Detect them here, read them with the volatile flag so FileMgr will</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>     <span class="comment">// pick up the correct size, and simply override their contents as we do for</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>     <span class="comment">// STDIN.</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>     <span class="keywordflow">if</span> (File-><a class="code" href="classclang_1_1FileEntry.html#a1c5fd51602d0f986f01036a86c79277b" title="Check whether the file is a named pipe (and thus can't be opened by the native FileManager methods)...">isNamedPipe</a>()) {</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>       std::string ErrorStr;</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>       <span class="keywordflow">if</span> (llvm::MemoryBuffer *MB =</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>               FileMgr.<a class="code" href="classclang_1_1FileManager.html#a4aedd4bd4b3dc2a8df7f3dba692464a8" title="Open the specified file as a MemoryBuffer, returning a new MemoryBuffer if successful, otherwise returning null.">getBufferForFile</a>(File, &ErrorStr, <span class="comment">/*isVolatile=*/</span><span class="keyword">true</span>)) {</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>         <span class="comment">// Create a new virtual file that will have the correct size.</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>         File = FileMgr.<a class="code" href="classclang_1_1FileManager.html#a7dd8ef9d948ba6281672e34eb8adaa2a" title="Retrieve a file entry for a "virtual" file that acts as if there were a file with the given name on d...">getVirtualFile</a>(InputFile, MB->getBufferSize(), 0);</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>         SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a0eb85320100e00c98e4bc3305e6e8753" title="Override the contents of the given source file by providing an already-allocated buffer.">overrideFileContents</a>(File, MB);</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>         Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_cannot_open_file) << InputFile << ErrorStr;</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>       }</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>     }</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span> </div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>     SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a652eb33fbe7222fd717b491be1738ecf" title="Create the FileID for the main source file.">createMainFileID</a>(File, Kind);</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>     <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<llvm::MemoryBuffer></a> SB;</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>     <span class="keywordflow">if</span> (llvm::error_code ec = llvm::MemoryBuffer::getSTDIN(SB)) {</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_fe_error_reading_stdin) << ec.message();</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>     }</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File = FileMgr.<a class="code" href="classclang_1_1FileManager.html#a7dd8ef9d948ba6281672e34eb8adaa2a" title="Retrieve a file entry for a "virtual" file that acts as if there were a file with the given name on d...">getVirtualFile</a>(SB->getBufferIdentifier(),</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>                                                    SB->getBufferSize(), 0);</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a652eb33fbe7222fd717b491be1738ecf" title="Create the FileID for the main source file.">createMainFileID</a>(File, Kind);</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>     SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a0eb85320100e00c98e4bc3305e6e8753" title="Override the contents of the given source file by providing an already-allocated buffer.">overrideFileContents</a>(File, SB.take());</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>   }</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> </div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>   assert(!SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ad3ac47ab7380c82d19243a2db765479c" title="Returns the FileID of the main source file.">getMainFileID</a>().<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>() &&</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>          <span class="stringliteral">"Couldn't establish MainFileID!"</span>);</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> }</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span> </div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment">// High-Level Operations</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"><a class="code" href="classclang_1_1CompilerInstance.html#acab2d9d69ec889a7034634036720ffc5">  665</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CompilerInstance.html#acab2d9d69ec889a7034634036720ffc5">CompilerInstance::ExecuteAction</a>(<a class="code" href="classclang_1_1FrontendAction.html" title="Abstract base class for actions which can be performed by the frontend.">FrontendAction</a> &Act) {</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>   assert(<a class="code" href="classclang_1_1CompilerInstance.html#adb6cdb7b32ff59fc9db6480205fd3bd0">hasDiagnostics</a>() && <span class="stringliteral">"Diagnostics engine is not initialized!"</span>);</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>   assert(!<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().ShowHelp && <span class="stringliteral">"Client must handle '-help'!"</span>);</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   assert(!<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().ShowVersion && <span class="stringliteral">"Client must handle '-version'!"</span>);</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> </div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>   <span class="comment">// FIXME: Take this as an argument, once all the APIs we used have moved to</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>   <span class="comment">// taking it as an input instead of hard-coding llvm::errs.</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>   raw_ostream &OS = llvm::errs();</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span> </div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>   <span class="comment">// Create the target instance.</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>   <a class="code" href="classclang_1_1CompilerInstance.html#a5972a3b70aeb763793685ddf6210dfd7" title="Replace the current diagnostics engine.">setTarget</a>(<a class="code" href="classclang_1_1TargetInfo.html#a4f871040b846cf9e01dd66a8b46e2985" title="Construct a target for the given options.">TargetInfo::CreateTargetInfo</a>(<a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>(), &<a class="code" href="classclang_1_1CompilerInstance.html#aa8bf84411ac47e5ae0efe3f3269018bd">getTargetOpts</a>()));</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CompilerInstance.html#ad968bf11717b91b627669ec8cdf89d63">hasTarget</a>())</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span> </div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>   <span class="comment">// Inform the target of the language options.</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>   <span class="comment">// FIXME: We shouldn't need to do this, the target should be immutable once</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>   <span class="comment">// created. This complexity should be lifted elsewhere.</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>   <a class="code" href="classclang_1_1CompilerInstance.html#ab733722f416a30b1ed7550c1555dbf80">getTarget</a>().<a class="code" href="classclang_1_1TargetInfo.html#aea8a073fd8fded4165e0d346e226144d" title="Set forced language options.">setForcedLangOptions</a>(<a class="code" href="classclang_1_1CompilerInstance.html#ac9b612115b0b8bcef7e53fd8078ccecb">getLangOpts</a>());</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span> </div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>   <span class="comment">// rewriter project will change target built-in bool type from its default. </span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().ProgramAction == <a class="code" href="namespaceclang_1_1frontend.html#af6106d0ffa6ce83f34a9961f2d374494a8ba87375ecbff647fa1056961780b51d" title="ObjC->C Rewriter.">frontend::RewriteObjC</a>)</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>     <a class="code" href="classclang_1_1CompilerInstance.html#ab733722f416a30b1ed7550c1555dbf80">getTarget</a>().<a class="code" href="classclang_1_1TargetInfo.html#a787550c1df7797157237504aac6d4ef0">noSignedCharForObjCBool</a>();</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span> </div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>   <span class="comment">// Validate/process some options.</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>().Verbose)</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>     OS << <span class="stringliteral">"clang -cc1 version "</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="l00692"></a><span class="lineno">  692</span>        << <span class="stringliteral">" based upon "</span> << PACKAGE_STRING</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>        << <span class="stringliteral">" default target "</span> << llvm::sys::getDefaultTargetTriple() << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span> </div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().ShowTimers)</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>     <a class="code" href="classclang_1_1CompilerInstance.html#a8de263254d773b48145b9ad36d70a50f" title="Create the frontend timer and replace any existing one with it.">createFrontendTimer</a>();</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> </div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().ShowStats)</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>     llvm::EnableStatistics();</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span> </div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().Inputs.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>     <span class="comment">// Reset the ID tables if we are reusing the SourceManager.</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a1760a743dfce9ca6acc4138a0cb13f14">hasSourceManager</a>())</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>       <a class="code" href="classclang_1_1CompilerInstance.html#abf40d415ec33174b74655a2f14dda0c2" title="Return the current source manager.">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a68af6d1635e6105adaa25a4205af33a6">clearIDTables</a>();</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span> </div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>     <span class="keywordflow">if</span> (Act.<a class="code" href="classclang_1_1FrontendAction.html#ad771b06cb303a508bac775897363b73d" title="Prepare the action for processing the input file Input.">BeginSourceFile</a>(*<span class="keyword">this</span>, <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().Inputs[i])) {</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>       Act.<a class="code" href="classclang_1_1FrontendAction.html#a01490ca84fdda64ce002f93508018f9a" title="Set the source manager's main input file, and run the action.">Execute</a>();</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>       Act.<a class="code" href="classclang_1_1FrontendAction.html#a0c0da9a416e556c83ab65e1a2691c0f2" title="Perform any per-file post processing, deallocate per-file objects, and run statistics and output file...">EndSourceFile</a>();</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>     }</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>   }</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span> </div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>   <span class="comment">// Notify the diagnostic client that all files were processed.</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>   <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#adfcddafe21f07cc2b7dc422cb8661d56">getClient</a>()-><a class="code" href="classclang_1_1DiagnosticConsumer.html#a69db9525165df8cb31a237943ed6cae4" title="Callback to inform the diagnostic client that processing of all source files has ended.">finish</a>();</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span> </div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#acb8b8d148ca4ece4ce11f6e1f038704b">getDiagnosticOpts</a>().ShowCarets) {</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>     <span class="comment">// We can have multiple diagnostics sharing one diagnostic client.</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>     <span class="comment">// Get the total number of warnings/errors from the client.</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     <span class="keywordtype">unsigned</span> NumWarnings = <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#adfcddafe21f07cc2b7dc422cb8661d56">getClient</a>()-><a class="code" href="classclang_1_1DiagnosticConsumer.html#a90fde25feccf05b2eee4019aefcaa068">getNumWarnings</a>();</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>     <span class="keywordtype">unsigned</span> NumErrors = <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#adfcddafe21f07cc2b7dc422cb8661d56">getClient</a>()-><a class="code" href="classclang_1_1DiagnosticConsumer.html#a0b9d599cace3787775016b7042ec7a12">getNumErrors</a>();</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span> </div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>     <span class="keywordflow">if</span> (NumWarnings)</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>       OS << NumWarnings << <span class="stringliteral">" warning"</span> << (NumWarnings == 1 ? <span class="stringliteral">""</span> : <span class="stringliteral">"s"</span>);</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>     <span class="keywordflow">if</span> (NumWarnings && NumErrors)</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>       OS << <span class="stringliteral">" and "</span>;</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>     <span class="keywordflow">if</span> (NumErrors)</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>       OS << NumErrors << <span class="stringliteral">" error"</span> << (NumErrors == 1 ? <span class="stringliteral">""</span> : <span class="stringliteral">"s"</span>);</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>     <span class="keywordflow">if</span> (NumWarnings || NumErrors)</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>       OS << <span class="stringliteral">" generated.\n"</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="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#a7c2d8c2da9a6d3b247d4aa3bafab6a1f">ShowStats</a> && <a class="code" href="classclang_1_1CompilerInstance.html#ad0eaae9ba9e88e8540f81ad964d74fd7">hasFileManager</a>()) {</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>     <a class="code" href="classclang_1_1CompilerInstance.html#a96a6364c197bbfb7a9c38084234f19fe" title="Return the current file manager to the caller.">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#a2f15237be15cb23e7955086020d54687">PrintStats</a>();</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>     OS << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>   }</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span> </div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>   <span class="keywordflow">return</span> !<a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#adfcddafe21f07cc2b7dc422cb8661d56">getClient</a>()-><a class="code" href="classclang_1_1DiagnosticConsumer.html#a0b9d599cace3787775016b7042ec7a12">getNumErrors</a>();</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span> }</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="comment"></span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span> <span class="comment">/// \brief Determine the appropriate source input kind based on language</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="comment">/// options.</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#adb1e302b1d0d6aea314c1ab721bf0be5">  741</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> <a class="code" href="CompilerInstance_8cpp.html#adb1e302b1d0d6aea314c1ab721bf0be5" title="Determine the appropriate source input kind based on language options.">getSourceInputKindFromOptions</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts) {</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>   <span class="keywordflow">if</span> (LangOpts.OpenCL)</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a6dfa99f06df95954fc34cd10518b75d8">IK_OpenCL</a>;</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>   <span class="keywordflow">if</span> (LangOpts.CUDA)</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a2f35df33303fed1d79a81ce9bc7f4077">IK_CUDA</a>;</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>   <span class="keywordflow">if</span> (LangOpts.ObjC1)</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>     <span class="keywordflow">return</span> LangOpts.CPlusPlus? <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a23bf74f481a55712ed26198171d8a3dd">IK_ObjCXX</a> : <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4a4054c30293576e9a09ce76410db6db">IK_ObjC</a>;</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>   <span class="keywordflow">return</span> LangOpts.CPlusPlus? <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10af9da9d80e200fbbe7f087765f9972c1f">IK_CXX</a> : <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10a4c84b88fbd27cf2e1ac5c465a32a511a">IK_C</a>;</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span> }</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span> </div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>   <span class="keyword">struct </span>CompileModuleMapData {</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>     <a class="code" href="classclang_1_1CompilerInstance.html">CompilerInstance</a> &Instance;</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>     <a class="code" href="classclang_1_1GenerateModuleAction.html">GenerateModuleAction</a> &CreateModuleAction;</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>   };</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> }</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="comment"></span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="comment">/// \brief Helper function that executes the module-generating action under</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="comment">/// a crash recovery context.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#ab59c3836483183ab1bed92876e711cbf">  760</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInstance_8cpp.html#ab59c3836483183ab1bed92876e711cbf" title="Helper function that executes the module-generating action under a crash recovery context...">doCompileMapModule</a>(<span class="keywordtype">void</span> *UserData) {</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>   CompileModuleMapData &Data</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>     = *<span class="keyword">reinterpret_cast<</span>CompileModuleMapData *<span class="keyword">></span>(UserData);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>   Data.Instance.ExecuteAction(Data.CreateModuleAction);</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> }</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span> </div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span> <span class="keyword">namespace </span>{<span class="comment"></span></div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span> <span class="comment">  /// \brief Function object that checks with the given macro definition should</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="comment">  /// be removed, because it is one of the ignored macros.</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="comment"></span>  <span class="keyword">class </span>RemoveIgnoredMacro {</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a> &HSOpts;</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span> </div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>     <span class="keyword">explicit</span> RemoveIgnoredMacro(<span class="keyword">const</span> <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a> &HSOpts)</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>       : HSOpts(HSOpts) { }</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span> </div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>     <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> std::pair<std::string, bool> &def)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>       StringRef MacroDef = def.first;</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>       <span class="keywordflow">return</span> HSOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a2144688937661163b5188a19edd834c6" title="The set of macro names that should be ignored for the purposes of computing the module hash...">ModulesIgnoreMacros</a>.count(MacroDef.split(<span class="charliteral">'='</span>).first) > 0;</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>     }</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>   };</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="comment"></span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> <span class="comment">/// \brief Compile a module file for the given module, using the options </span></div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span> <span class="comment">/// provided by the importing compiler instance.</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#aeafbdc0224b2f99d5f3a74b74b8e5483">  785</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInstance_8cpp.html#aeafbdc0224b2f99d5f3a74b74b8e5483" title="Compile a module file for the given module, using the options provided by the importing compiler inst...">compileModule</a>(<a class="code" href="classclang_1_1CompilerInstance.html">CompilerInstance</a> &ImportingInstance,</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>                           <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ImportLoc,</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>                           <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a>,</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>                           StringRef ModuleFileName) {</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>   <span class="comment">// FIXME: have LockFileManager return an error_code so that we can</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>   <span class="comment">// avoid the mkdir when the directory already exists.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>   StringRef Dir = llvm::sys::path::parent_path(ModuleFileName);</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>   llvm::sys::fs::create_directories(Dir);</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>   llvm::LockFileManager Locked(ModuleFileName);</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>   <span class="keywordflow">switch</span> (Locked) {</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>   <span class="keywordflow">case</span> llvm::LockFileManager::LFS_Error:</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>     <span class="keywordflow">return</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>   <span class="keywordflow">case</span> llvm::LockFileManager::LFS_Owned:</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>     <span class="comment">// We're responsible for building the module ourselves. Do so below.</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span> </div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>   <span class="keywordflow">case</span> llvm::LockFileManager::LFS_Shared:</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>     <span class="comment">// Someone else is responsible for building the module. Wait for them to</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>     <span class="comment">// finish.</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>     Locked.waitForUnlock();</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   }</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span> </div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>   <a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> &ModMap </div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>     = ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>().<a class="code" href="classclang_1_1Preprocessor.html#a9dc8733c4a182dee512c14dbdcfe046e">getHeaderSearchInfo</a>().<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>();</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>     </div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>   <span class="comment">// Construct a compiler invocation for creating this module.</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<CompilerInvocation></a> Invocation</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>     (<span class="keyword">new</span> <a class="code" href="classclang_1_1CompilerInvocation.html" title="Helper class for holding the data necessary to invoke the compiler.">CompilerInvocation</a>(ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#a171249f941c6c546049f4b6107c84d6e">getInvocation</a>()));</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span> </div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>   <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> &PPOpts = Invocation->getPreprocessorOpts();</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>   </div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>   <span class="comment">// For any options that aren't intended to affect how a module is built,</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>   <span class="comment">// reset them to their default values.</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>   Invocation->getLangOpts()->resetNonModularOptions();</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>   PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a41dd3a6021d41915f33fa423c7257d36" title="Reset any options that are not considered when building a module.">resetNonModularOptions</a>();</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span> </div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>   <span class="comment">// Remove any macro definitions that are explicitly ignored by the module.</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>   <span class="comment">// They aren't supposed to affect how the module is built anyway.</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a> &HSOpts = Invocation->getHeaderSearchOpts();</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>   PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ae048445dc7b1036784a71d057eb803c1">Macros</a>.erase(std::remove_if(PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ae048445dc7b1036784a71d057eb803c1">Macros</a>.begin(), PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ae048445dc7b1036784a71d057eb803c1">Macros</a>.end(),</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>                                      RemoveIgnoredMacro(HSOpts)),</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>                       PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#ae048445dc7b1036784a71d057eb803c1">Macros</a>.end());</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span> </div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span> </div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>   <span class="comment">// Note the name of the module we're building.</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>   Invocation->getLangOpts()->CurrentModule = Module-><a class="code" href="classclang_1_1Module.html#a9500036125ff28f527f653855d6077c8" title="Retrieve the name of the top-level module.">getTopLevelModuleName</a>();</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span> </div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>   <span class="comment">// Make sure that the failed-module structure has been allocated in</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>   <span class="comment">// the importing instance, and propagate the pointer to the newly-created</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>   <span class="comment">// instance.</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>   <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> &ImportingPPOpts</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>     = ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#a171249f941c6c546049f4b6107c84d6e">getInvocation</a>().<a class="code" href="classclang_1_1CompilerInvocationBase.html#af26aa2f4a5df780a3b5898eef70763d5">getPreprocessorOpts</a>();</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>   <span class="keywordflow">if</span> (!ImportingPPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#adb8e88ad71e7890a8d54a6911fb1f8a6" title="The set of modules that failed to build.">FailedModules</a>)</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>     ImportingPPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#adb8e88ad71e7890a8d54a6911fb1f8a6" title="The set of modules that failed to build.">FailedModules</a> = <span class="keyword">new</span> <a class="code" href="classclang_1_1PreprocessorOptions_1_1FailedModulesSet.html" title="Records the set of modules.">PreprocessorOptions::FailedModulesSet</a>;</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>   PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#adb8e88ad71e7890a8d54a6911fb1f8a6" title="The set of modules that failed to build.">FailedModules</a> = ImportingPPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#adb8e88ad71e7890a8d54a6911fb1f8a6" title="The set of modules that failed to build.">FailedModules</a>;</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span> </div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>   <span class="comment">// If there is a module map file, build the module using the module map.</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>   <span class="comment">// Set up the inputs/outputs so that we build the module from its umbrella</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>   <span class="comment">// header.</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>   <a class="code" href="classclang_1_1FrontendOptions.html" title="FrontendOptions - Options for controlling the behavior of the frontend.">FrontendOptions</a> &FrontendOpts = Invocation->getFrontendOpts();</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>   FrontendOpts.<a class="code" href="classclang_1_1FrontendOptions.html#a7b09d06e2ab796fc22e43f67a6f36b5b" title="The output file, if any.">OutputFile</a> = ModuleFileName.str();</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>   FrontendOpts.<a class="code" href="classclang_1_1FrontendOptions.html#adccf396bebfe929285746d103e9d90b3" title="Disable memory freeing on exit.">DisableFree</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>   FrontendOpts.<a class="code" href="classclang_1_1FrontendOptions.html#acface48e3ca73e16bc8569dec5c42839">GenerateGlobalModuleIndex</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>   FrontendOpts.<a class="code" href="classclang_1_1FrontendOptions.html#a95a3f648ae866e50b78434e049d87218" title="The input files and their types.">Inputs</a>.clear();</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>   <a class="code" href="namespaceclang.html#a7f0d2857e98f529ab752288e24013c10">InputKind</a> IK = <a class="code" href="CompilerInstance_8cpp.html#adb1e302b1d0d6aea314c1ab721bf0be5" title="Determine the appropriate source input kind based on language options.">getSourceInputKindFromOptions</a>(*Invocation->getLangOpts());</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span> </div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>   <span class="comment">// Don't free the remapped file buffers; they are owned by our caller.</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>   PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#a47eb4ea58ec9f1b60266df38f6840ed6" title="Whether the compiler instance should retain (i.e., not free) the buffers associated with remapped fil...">RetainRemappedFileBuffers</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>     </div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>   Invocation->getDiagnosticOpts().VerifyDiagnostics = 0;</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>   assert(ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#a171249f941c6c546049f4b6107c84d6e">getInvocation</a>().<a class="code" href="classclang_1_1CompilerInvocation.html#a234ce051b3992d616a6fd2235a5ee3e3" title="Retrieve a module hash string that is suitable for uniquely identifying the conditions under which th...">getModuleHash</a>() ==</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>          Invocation->getModuleHash() && <span class="stringliteral">"Module hash mismatch!"</span>);</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>   </div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>   <span class="comment">// Construct a compiler instance that will be used to actually create the</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>   <span class="comment">// module.</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>   <a class="code" href="classclang_1_1CompilerInstance.html">CompilerInstance</a> Instance;</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>   Instance.<a class="code" href="classclang_1_1CompilerInstance.html#a68360c9e4e5ed0347161e082e609c6c9" title="setInvocation - Replace the current invocation.">setInvocation</a>(&*Invocation);</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>   Instance.createDiagnostics(<span class="keyword">new</span> <a class="code" href="classclang_1_1ForwardingDiagnosticConsumer.html" title="Diagnostic consumer that forwards diagnostics along to an existing, already-initialized diagnostic co...">ForwardingDiagnosticConsumer</a>(</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>                                    ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#abc5c9a3f1747d0c8f76c0238569b972d">getDiagnosticClient</a>()),</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>                              <span class="comment">/*ShouldOwnClient=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span> </div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>   <span class="comment">// Note that this module is part of the module build stack, so that we</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>   <span class="comment">// can detect cycles in the module graph.</span></div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>   Instance.createFileManager(); <span class="comment">// FIXME: Adopt file manager from importer?</span></div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>   Instance.createSourceManager(Instance.getFileManager());</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>   <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a> = Instance.getSourceManager();</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>   SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a599a8c8f35afca49e1addd1d3d4a34d0" title="Set the module build stack.">setModuleBuildStack</a>(</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>     ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#abf40d415ec33174b74655a2f14dda0c2" title="Return the current source manager.">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a5aa4cea4f2b00c10ee13f0fc05b273ea" title="Retrieve the module build stack.">getModuleBuildStack</a>());</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>   SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a8cae93c3d36adb141e3dbf403b74f76c" title="Push an entry to the module build stack.">pushModuleBuildStack</a>(Module-><a class="code" href="classclang_1_1Module.html#a9500036125ff28f527f653855d6077c8" title="Retrieve the name of the top-level module.">getTopLevelModuleName</a>(),</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>     <a class="code" href="classclang_1_1FullSourceLoc.html" title="A SourceLocation and its associated SourceManager.">FullSourceLoc</a>(ImportLoc, ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#abf40d415ec33174b74655a2f14dda0c2" title="Return the current source manager.">getSourceManager</a>()));</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span> </div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>   <span class="comment">// Get or create the module map that we'll use to build this module.</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>   std::string InferredModuleMapContent;</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *ModuleMapFile =</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>           ModMap.<a class="code" href="classclang_1_1ModuleMap.html#aa287c482ce0aac99831c2e2746b29612" title="Retrieve the module map file containing the definition of the given module.">getContainingModuleMapFile</a>(Module)) {</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>     <span class="comment">// Use the module map where this module resides.</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>     FrontendOpts.<a class="code" href="classclang_1_1FrontendOptions.html#a95a3f648ae866e50b78434e049d87218" title="The input files and their types.">Inputs</a>.push_back(</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>         <a class="code" href="classclang_1_1FrontendInputFile.html" title="An input file for the front end.">FrontendInputFile</a>(ModuleMapFile->getName(), IK));</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>     llvm::raw_string_ostream OS(InferredModuleMapContent);</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>     Module-><a class="code" href="classclang_1_1Module.html#a218ddc50d9601fb295a115546ce1e4d2" title="Print the module map for this module to the given stream.">print</a>(OS);</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>     OS.flush();</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>     FrontendOpts.<a class="code" href="classclang_1_1FrontendOptions.html#a95a3f648ae866e50b78434e049d87218" title="The input files and their types.">Inputs</a>.push_back(</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>         <a class="code" href="classclang_1_1FrontendInputFile.html" title="An input file for the front end.">FrontendInputFile</a>(<span class="stringliteral">"__inferred_module.map"</span>, IK));</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span> </div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>     <span class="keyword">const</span> llvm::MemoryBuffer *ModuleMapBuffer =</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>         llvm::MemoryBuffer::getMemBuffer(InferredModuleMapContent);</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>     ModuleMapFile = Instance.getFileManager().getVirtualFile(</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>         <span class="stringliteral">"__inferred_module.map"</span>, InferredModuleMapContent.size(), 0);</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>     SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a0eb85320100e00c98e4bc3305e6e8753" title="Override the contents of the given source file by providing an already-allocated buffer.">overrideFileContents</a>(ModuleMapFile, ModuleMapBuffer);</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>   }</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span> </div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>   <span class="comment">// Construct a module-generating action.</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>   <a class="code" href="classclang_1_1GenerateModuleAction.html">GenerateModuleAction</a> CreateModuleAction(Module-><a class="code" href="classclang_1_1Module.html#a505c7530ef3ac10e3f8c207e5722a158" title="Whether this is a "system" module (which assumes that all headers in it are system headers)...">IsSystem</a>);</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>   </div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>   <span class="comment">// Execute the action to actually build the module in-place. Use a separate</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   <span class="comment">// thread so that we get a stack large enough.</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ThreadStackSize = 8 << 20;</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>   llvm::CrashRecoveryContext CRC;</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>   CompileModuleMapData Data = { Instance, CreateModuleAction };</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>   CRC.RunSafelyOnThread(&<a class="code" href="CompilerInstance_8cpp.html#ab59c3836483183ab1bed92876e711cbf" title="Helper function that executes the module-generating action under a crash recovery context...">doCompileMapModule</a>, &Data, ThreadStackSize);</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span> </div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>   </div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>   <span class="comment">// Delete the temporary module map file.</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>   <span class="comment">// FIXME: Even though we're executing under crash protection, it would still</span></div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>   <span class="comment">// be nice to do this with RemoveFileOnSignal when we can. However, that</span></div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>   <span class="comment">// doesn't make sense for all clients, so clean this up manually.</span></div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>   Instance.clearOutputFiles(<span class="comment">/*EraseFiles=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span> </div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>   <span class="comment">// We've rebuilt a module. If we're allowed to generate or update the global</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>   <span class="comment">// module index, record that fact in the importing compiler instance.</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>   <span class="keywordflow">if</span> (ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#acface48e3ca73e16bc8569dec5c42839">GenerateGlobalModuleIndex</a>) {</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>     ImportingInstance.<a class="code" href="classclang_1_1CompilerInstance.html#a4d277e6deb84bb95eb3bbe70be2adb2d" title="Set the flag indicating whether we should (re)build the global module index.">setBuildGlobalModuleIndex</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>   }</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span> }</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span> <span class="comment"></span></div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span> <span class="comment">/// \brief Diagnose differences between the current definition of the given</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span> <span class="comment">/// configuration macro and the definition provided on the command line.</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#a95f09282d8e18a56d2dd3561ac21d6da">  927</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInstance_8cpp.html#a95f09282d8e18a56d2dd3561ac21d6da" title="Diagnose differences between the current definition of the given configuration macro and the definiti...">checkConfigMacro</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, StringRef ConfigMacro,</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>                              <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ImportLoc) {</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Id = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(ConfigMacro);</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>   <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a> = PP.<a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>();</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>   </div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>   <span class="comment">// If this identifier has never had a macro definition, then it could</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>   <span class="comment">// not have changed.</span></div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>   <span class="keywordflow">if</span> (!Id-><a class="code" href="classclang_1_1IdentifierInfo.html#aec139c9a39e529ba15c88efdb4152758" title="Returns true if this identifier was #defined to some value at any moment. In this case there should b...">hadMacroDefinition</a>())</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>     <span class="keywordflow">return</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">// If this identifier does not currently have a macro definition,</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>   <span class="comment">// check whether it had one on the command line.</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>   <span class="keywordflow">if</span> (!Id-><a class="code" href="classclang_1_1IdentifierInfo.html#a34cb7627ed0055795b041425667ee8a8" title="Return true if this identifier is #defined to some other value.">hasMacroDefinition</a>()) {</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>     <a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html">MacroDirective::DefInfo</a> LatestDef =</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>         PP.<a class="code" href="classclang_1_1Preprocessor.html#a5ddfa2be3b0fd4cdf82e45034da6f35a" title="Given an identifier, return the (probably #undef'd) MacroInfo representing the most recent macro defi...">getMacroDirectiveHistory</a>(Id)-><a class="code" href="classclang_1_1MacroDirective.html#ac3062e528778a25dc02f7d007b96114e" title="Traverses the macro directives history and returns the next macro definition directive along with inf...">getDefinition</a>();</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html">MacroDirective::DefInfo</a> Def = LatestDef; Def;</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>            Def = Def.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a3c9e47f42ead9a1bb1f415323a730a52">getPreviousDefinition</a>()) {</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>       <a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Def.getLocation());</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>       <span class="keywordflow">if</span> (FID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>())</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>         <span class="keywordflow">continue</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">// We only care about the predefines buffer.</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>       <span class="keywordflow">if</span> (FID != PP.<a class="code" href="classclang_1_1Preprocessor.html#a870eb0cfb41f9e619ab76b1109dc3bae" title="Returns the file ID for the preprocessor predefines.">getPredefinesFileID</a>())</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span> </div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>       <span class="comment">// This macro was defined on the command line, then #undef'd later.</span></div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>       <span class="comment">// Complain.</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(ImportLoc, diag::warn_module_config_macro_undef)</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>         << <span class="keyword">true</span> << ConfigMacro << Mod-><a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">getFullModuleName</a>();</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>       <span class="keywordflow">if</span> (LatestDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a9d1bcee0786df50e90dcb43792a8be6a">isUndefined</a>())</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>         PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(LatestDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a69b839431a581fd8e6471280db321d2c">getUndefLocation</a>(), diag::note_module_def_undef_here)</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>           << <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>     }</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span> </div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>     <span class="comment">// Okay: no definition in the predefines buffer.</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>   }</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span> </div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>   <span class="comment">// This identifier has a macro definition. Check whether we had a definition</span></div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>   <span class="comment">// on the command line.</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>   <a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html">MacroDirective::DefInfo</a> LatestDef =</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a5ddfa2be3b0fd4cdf82e45034da6f35a" title="Given an identifier, return the (probably #undef'd) MacroInfo representing the most recent macro defi...">getMacroDirectiveHistory</a>(Id)-><a class="code" href="classclang_1_1MacroDirective.html#ac3062e528778a25dc02f7d007b96114e" title="Traverses the macro directives history and returns the next macro definition directive along with inf...">getDefinition</a>();</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>   <a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html">MacroDirective::DefInfo</a> PredefinedDef;</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html">MacroDirective::DefInfo</a> Def = LatestDef; Def;</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>          Def = Def.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a3c9e47f42ead9a1bb1f415323a730a52">getPreviousDefinition</a>()) {</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>     <a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Def.getLocation());</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>     <span class="keywordflow">if</span> (FID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>())</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span> </div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>     <span class="comment">// We only care about the predefines buffer.</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>     <span class="keywordflow">if</span> (FID != PP.<a class="code" href="classclang_1_1Preprocessor.html#a870eb0cfb41f9e619ab76b1109dc3bae" title="Returns the file ID for the preprocessor predefines.">getPredefinesFileID</a>())</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span> </div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>     PredefinedDef = Def;</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>   }</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span> </div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>   <span class="comment">// If there was no definition for this macro in the predefines buffer,</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>   <span class="comment">// complain.</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>   <span class="keywordflow">if</span> (!PredefinedDef ||</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>       (!PredefinedDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a163f04323461f1a73d3193c535cce1f7">getLocation</a>().<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>() &&</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>        PredefinedDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a69b839431a581fd8e6471280db321d2c">getUndefLocation</a>().<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>())) {</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(ImportLoc, diag::warn_module_config_macro_undef)</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>       << <span class="keyword">false</span> << ConfigMacro << Mod-><a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">getFullModuleName</a>();</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(LatestDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a163f04323461f1a73d3193c535cce1f7">getLocation</a>(), diag::note_module_def_undef_here)</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>       << <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>   }</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span> </div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>   <span class="comment">// If the current macro definition is the same as the predefined macro</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>   <span class="comment">// definition, it's okay.</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>   <span class="keywordflow">if</span> (LatestDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a5b4f67b9ad7af09e7e7d91c089ffe28b">getMacroInfo</a>() == PredefinedDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a5b4f67b9ad7af09e7e7d91c089ffe28b">getMacroInfo</a>() ||</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>       LatestDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a5b4f67b9ad7af09e7e7d91c089ffe28b">getMacroInfo</a>()-><a class="code" href="classclang_1_1MacroInfo.html#a979840859913a30f4919756c6ddae8aa" title="Return true if the specified macro definition is equal to this macro in spelling, arguments...">isIdenticalTo</a>(*PredefinedDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a5b4f67b9ad7af09e7e7d91c089ffe28b">getMacroInfo</a>(),PP,</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>                                               <span class="comment">/*Syntactically=*/</span><span class="keyword">true</span>))</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> </div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>   <span class="comment">// The macro definitions differ.</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(ImportLoc, diag::warn_module_config_macro_undef)</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>     << <span class="keyword">false</span> << ConfigMacro << Mod-><a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">getFullModuleName</a>();</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(LatestDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a163f04323461f1a73d3193c535cce1f7">getLocation</a>(), diag::note_module_def_undef_here)</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>     << <span class="keyword">false</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="comment"></span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">/// \brief Write a new timestamp file with the given path.</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#ab9f0418e712e930d9aa516ac08860491"> 1012</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInstance_8cpp.html#ab9f0418e712e930d9aa516ac08860491" title="Write a new timestamp file with the given path.">writeTimestampFile</a>(StringRef TimestampFile) {</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>   std::string ErrorInfo;</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>   llvm::raw_fd_ostream Out(TimestampFile.str().c_str(), ErrorInfo,</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>                            llvm::sys::fs::F_Binary);</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> }</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment"></span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">/// \brief Prune the module cache of modules that haven't been accessed in</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="comment">/// a long time.</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"><a class="code" href="CompilerInstance_8cpp.html#a27f045a9e52dc564fdb944df86acd44a"> 1020</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="CompilerInstance_8cpp.html#a27f045a9e52dc564fdb944df86acd44a" title="Prune the module cache of modules that haven't been accessed in a long time.">pruneModuleCache</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1HeaderSearchOptions.html">HeaderSearchOptions</a> &HSOpts) {</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>   <span class="keyword">struct </span>stat StatBuf;</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>   <a class="code" href="classllvm_1_1SmallString.html">llvm::SmallString<128></a> TimestampFile;</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>   TimestampFile = HSOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a8c2a9d11a35b6c25f5700273fc816610" title="The directory used for the module cache.">ModuleCachePath</a>;</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>   llvm::sys::path::append(TimestampFile, <span class="stringliteral">"modules.timestamp"</span>);</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> </div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>   <span class="comment">// Try to stat() the timestamp file.</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>   <span class="keywordflow">if</span> (::stat(TimestampFile.c_str(), &StatBuf)) {</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>     <span class="comment">// If the timestamp file wasn't there, create one now.</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>     <span class="keywordflow">if</span> (errno == ENOENT) {</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>       <a class="code" href="CompilerInstance_8cpp.html#ab9f0418e712e930d9aa516ac08860491" title="Write a new timestamp file with the given path.">writeTimestampFile</a>(TimestampFile);</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>     }</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>   }</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> </div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>   <span class="comment">// Check whether the time stamp is older than our pruning interval.</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>   <span class="comment">// If not, do nothing.</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>   time_t TimeStampModTime = StatBuf.st_mtime;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>   time_t CurrentTime = time(0);</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>   <span class="keywordflow">if</span> (CurrentTime - TimeStampModTime <= time_t(HSOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a1ae175391f10d03bf5f0630dfad836a5" title="The interval (in seconds) between pruning operations.">ModuleCachePruneInterval</a>))</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> </div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>   <span class="comment">// Write a new timestamp file so that nobody else attempts to prune.</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>   <span class="comment">// There is a benign race condition here, if two Clang instances happen to</span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>   <span class="comment">// notice at the same time that the timestamp is out-of-date.</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>   <a class="code" href="CompilerInstance_8cpp.html#ab9f0418e712e930d9aa516ac08860491" title="Write a new timestamp file with the given path.">writeTimestampFile</a>(TimestampFile);</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> </div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>   <span class="comment">// Walk the entire module cache, looking for unused module files and module</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>   <span class="comment">// indices.</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>   llvm::error_code EC;</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> ModuleCachePathNative;</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>   llvm::sys::path::native(HSOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#a8c2a9d11a35b6c25f5700273fc816610" title="The directory used for the module cache.">ModuleCachePath</a>, ModuleCachePathNative);</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>   <span class="keywordflow">for</span> (llvm::sys::fs::directory_iterator</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>          Dir(ModuleCachePathNative.str(), EC), DirEnd;</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>        Dir != DirEnd && !EC; Dir.increment(EC)) {</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>     <span class="comment">// If we don't have a directory, there's nothing to look into.</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>     <span class="keywordflow">if</span> (!llvm::sys::fs::is_directory(Dir->path()))</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>       <span class="keywordflow">continue</span>;</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>     <span class="comment">// Walk all of the files within this directory.</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>     <span class="keywordtype">bool</span> RemovedAllFiles = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>     <span class="keywordflow">for</span> (llvm::sys::fs::directory_iterator File(Dir->path(), EC), FileEnd;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>          File != FileEnd && !EC; File.increment(EC)) {</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>       <span class="comment">// We only care about module and global module index files.</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>       <span class="keywordflow">if</span> (llvm::sys::path::extension(File->path()) != <span class="stringliteral">".pcm"</span> &&</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>           llvm::sys::path::filename(File->path()) != <span class="stringliteral">"modules.idx"</span>) {</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>         RemovedAllFiles = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>       }</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> </div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>       <span class="comment">// Look at this file. If we can't stat it, there's nothing interesting</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>       <span class="comment">// there.</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>       <span class="keywordflow">if</span> (::stat(File->path().c_str(), &StatBuf)) {</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>         RemovedAllFiles = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>       }</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> </div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>       <span class="comment">// If the file has been used recently enough, leave it there.</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>       time_t FileAccessTime = StatBuf.st_atime;</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>       <span class="keywordflow">if</span> (CurrentTime - FileAccessTime <=</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>               time_t(HSOpts.<a class="code" href="classclang_1_1HeaderSearchOptions.html#ae38bd3c3f7c7d3e696eba59d484f7b32" title="The time (in seconds) after which an unused module file will be considered unused and will...">ModuleCachePruneAfter</a>)) {</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>         RemovedAllFiles = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>       }</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> </div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>       <span class="comment">// Remove the file.</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>       <span class="keywordtype">bool</span> Existed;</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>       <span class="keywordflow">if</span> (llvm::sys::fs::remove(File->path(), Existed) || !Existed) {</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>         RemovedAllFiles = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>       }</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>     }</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> </div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>     <span class="comment">// If we removed all of the files in the directory, remove the directory</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>     <span class="comment">// itself.</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>     <span class="keywordflow">if</span> (RemovedAllFiles) {</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>       <span class="keywordtype">bool</span> Existed;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>       llvm::sys::fs::remove(Dir->path(), Existed);</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>     }</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>   }</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> }</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> </div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a></div>
+<div class="line"><a name="l01102"></a><span class="lineno"><a class="code" href="classclang_1_1CompilerInstance.html#a092ee5b0a8b55fe456f2c460b2171b5b"> 1102</a></span> <a class="code" href="classclang_1_1CompilerInstance.html#a092ee5b0a8b55fe456f2c460b2171b5b" title="}">CompilerInstance::loadModule</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ImportLoc,</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>                              <a class="code" href="classllvm_1_1ArrayRef.html">ModuleIdPath</a> Path,</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>                              <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67" title="Describes the visibility of the various names within a particular module.">Module::NameVisibilityKind</a> <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>,</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>                              <span class="keywordtype">bool</span> IsInclusionDirective) {</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>   <span class="comment">// Determine what file we're searching from.</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>   StringRef ModuleName = Path[0].first->getName();</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ModuleNameLoc = Path[0].second;</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> </div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>   <span class="comment">// If we've already handled this import, just return the cached result.</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>   <span class="comment">// This one-element cache is important to eliminate redundant diagnostics</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>   <span class="comment">// when both the preprocessor and parser see the same import declaration.</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>   <span class="keywordflow">if</span> (!ImportLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>() && LastModuleImportLoc == ImportLoc) {</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>     <span class="comment">// Make the named module visible.</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>     <span class="keywordflow">if</span> (LastModuleImportResult && ModuleName != <a class="code" href="classclang_1_1CompilerInstance.html#ac9b612115b0b8bcef7e53fd8078ccecb">getLangOpts</a>().<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a>)</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>       ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#a5e5f186729969db7cbc81d30c7d4fd71" title="Make the entities in the given module and any of its (non-explicit) submodules visible to name lookup...">makeModuleVisible</a>(LastModuleImportResult, Visibility,</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>                                        ImportLoc, <span class="comment">/*Complain=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>     <span class="keywordflow">return</span> LastModuleImportResult;</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>   <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">clang::Module</a> *<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> = 0;</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> </div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>   <span class="comment">// If we don't already have information on this module, load the module now.</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>   llvm::DenseMap<const IdentifierInfo *, clang::Module *>::iterator Known</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>     = KnownModules.find(Path[0].first);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>   <span class="keywordflow">if</span> (Known != KnownModules.end()) {</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>     <span class="comment">// Retrieve the cached top-level module.</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>     Module = Known->second;    </div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ModuleName == <a class="code" href="classclang_1_1CompilerInstance.html#ac9b612115b0b8bcef7e53fd8078ccecb">getLangOpts</a>().<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a>) {</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>     <span class="comment">// This is the module we're building. </span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>     Module = PP->getHeaderSearchInfo().getModuleMap().findModule(ModuleName);</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>     Known = KnownModules.insert(std::make_pair(Path[0].first, Module)).first;</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>     <span class="comment">// Search for a module with the given name.</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>     Module = PP->getHeaderSearchInfo().lookupModule(ModuleName);</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>     std::string ModuleFileName;</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>     <span class="keywordflow">if</span> (Module) {</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>       ModuleFileName = PP->getHeaderSearchInfo().getModuleFileName(Module);</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>     } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>       ModuleFileName = PP->getHeaderSearchInfo().getModuleFileName(ModuleName);</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> </div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>     <span class="comment">// If we don't already have an ASTReader, create one now.</span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>     <span class="keywordflow">if</span> (!ModuleManager) {</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>       <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1CompilerInstance.html#a7766c4bd37874a2db70062863aafcc01">hasASTContext</a>())</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>         <a class="code" href="classclang_1_1CompilerInstance.html#a609e1bbc05d1fc2ca7a8d5d3146b5dd1" title="Create the AST context.">createASTContext</a>();</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> </div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>       <span class="comment">// If we're not recursively building a module, check whether we</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>       <span class="comment">// need to prune the module cache.</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#abf40d415ec33174b74655a2f14dda0c2" title="Return the current source manager.">getSourceManager</a>().getModuleBuildStack().empty() &&</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>           <a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>().ModuleCachePruneInterval > 0 &&</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>           <a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>().ModuleCachePruneAfter > 0) {</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>         <a class="code" href="CompilerInstance_8cpp.html#a27f045a9e52dc564fdb944df86acd44a" title="Prune the module cache of modules that haven't been accessed in a long time.">pruneModuleCache</a>(<a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>());</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>       }</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> </div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>       std::string Sysroot = <a class="code" href="classclang_1_1CompilerInstance.html#ab9603cd3fdb0a3f18ef1cae7e9909a3e">getHeaderSearchOpts</a>().<a class="code" href="classclang_1_1HeaderSearchOptions.html#a7b2c49429c3e24836a745727bd14dfbb">Sysroot</a>;</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> &PPOpts = <a class="code" href="classclang_1_1CompilerInstance.html#a44f5c8763eb8a46ac41b13e2a56fde24">getPreprocessorOpts</a>();</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>       ModuleManager = <span class="keyword">new</span> <a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a>(<a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>(), *<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>,</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>                                     Sysroot.empty() ? <span class="stringliteral">""</span> : Sysroot.c_str(),</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>                                     PPOpts.<a class="code" href="classclang_1_1PreprocessorOptions.html#afbbf74f590f04a8fb30bb1c63547d828" title="When true, disables most of the normal validation performed on precompiled headers.">DisablePCHValidation</a>,</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>                                     <span class="comment">/*AllowASTWithCompilerErrors=*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>                                     <a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#afb81b7bd64b782bcc690119f2ed5fcbc">UseGlobalModuleIndex</a>);</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a6f84def29e662b0f1fc19dc343a3505d">hasASTConsumer</a>()) {</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>         ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#ae022998e598f94eae58d715ee810b75d" title="Set the AST deserialization listener.">setDeserializationListener</a>(</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>           <a class="code" href="classclang_1_1CompilerInstance.html#a78c9529f4540cd51a0a4cfa3be414300">getASTConsumer</a>().GetASTDeserializationListener());</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>         <a class="code" href="classclang_1_1CompilerInstance.html#a48b17496817d8a900aaebf55ed16fd56">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a5a39b61c1da6b31ed498da0bbc2b8308" title="Attach an AST mutation listener to the AST context.">setASTMutationListener</a>(</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>           <a class="code" href="classclang_1_1CompilerInstance.html#a78c9529f4540cd51a0a4cfa3be414300">getASTConsumer</a>().GetASTMutationListener());</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>       <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<ExternalASTSource></a> Source;</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>       Source.reset(ModuleManager);</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>       <a class="code" href="classclang_1_1CompilerInstance.html#a48b17496817d8a900aaebf55ed16fd56">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a9f13d96b21dad7c71264f23a8cf05c1d" title="Attach an external AST source to the AST context.">setExternalSource</a>(Source);</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a2697f71e97b2b862c0f0d95f412a52bc">hasSema</a>())</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>         ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#af47a3204294bf79be1ed3fa4749b7904" title="Initialize the semantic source with the Sema instance being used to perform semantic analysis on the ...">InitializeSema</a>(<a class="code" href="classclang_1_1CompilerInstance.html#a0ae6e29859e1e1926c01a8201f6a00ee">getSema</a>());</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a6f84def29e662b0f1fc19dc343a3505d">hasASTConsumer</a>())</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>         ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#aebb96460f96c36ccd73f125002d51aef" title="Function that will be invoked when we begin parsing a new translation unit involving this external AS...">StartTranslationUnit</a>(&<a class="code" href="classclang_1_1CompilerInstance.html#a78c9529f4540cd51a0a4cfa3be414300">getASTConsumer</a>());</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>     }</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>     <span class="comment">// Try to load the module file.</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>     <span class="keywordtype">unsigned</span> ARRFlags = <a class="code" href="classclang_1_1ASTReader.html#a1ef10402198040c36f537a57bc633ca0aa86bb8b2fe66cf9874a40e96031f6b0e" title="The client can handle an AST file that cannot load because it is out-of-date relative to its input fi...">ASTReader::ARR_OutOfDate</a> | <a class="code" href="classclang_1_1ASTReader.html#a1ef10402198040c36f537a57bc633ca0a2c1c16a6ec81a0d9183f19a135468d55" title="The client can handle an AST file that cannot load because it is missing.">ASTReader::ARR_Missing</a>;</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>     <span class="keywordflow">switch</span> (ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#a39c08f8450753c190a0c804ad453c870" title="Load the AST file designated by the given file name.">ReadAST</a>(ModuleFileName, <a class="code" href="namespaceclang_1_1serialization.html#ac4e913a3b4b4721b8995cb7dd6d9bb1ea22e2f1dba8920d73cd2979ca1e17a097" title="File is a module proper.">serialization::MK_Module</a>,</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>                                    ImportLoc, ARRFlags)) {</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243a22a203378a875589f6013335def54572" title="The control block was read successfully. Aside from failures, the AST file is safe to read into the c...">ASTReader::Success</a>:</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> </div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243a955fa046aaf1f1a1a5c48d21c24e8863" title="The AST file is out-of-date relative to its input files, and needs to be regenerated.">ASTReader::OutOfDate</a>:</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243aec84e2a366d426f45d8d9e9e2509bfb2" title="The AST file was missing.">ASTReader::Missing</a>: {</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>       <span class="comment">// The module file is missing or out-of-date. Build it.</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> </div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>       <span class="comment">// If we don't have a module, we don't know how to build the module file.</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>       <span class="comment">// Complain and return.</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>       <span class="keywordflow">if</span> (!Module) {</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>         <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ModuleNameLoc, diag::err_module_not_found)</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>           << ModuleName</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>           << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ImportLoc, ModuleNameLoc);</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>         ModuleBuildFailed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>         <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>       }</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> </div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>       <span class="comment">// Check whether there is a cycle in the module graph.</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>       <a class="code" href="classllvm_1_1ArrayRef.html">ModuleBuildStack</a> ModPath = <a class="code" href="classclang_1_1CompilerInstance.html#abf40d415ec33174b74655a2f14dda0c2" title="Return the current source manager.">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a5aa4cea4f2b00c10ee13f0fc05b273ea" title="Retrieve the module build stack.">getModuleBuildStack</a>();</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>       ModuleBuildStack::iterator Pos = ModPath.begin(), PosEnd = ModPath.end();</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>       <span class="keywordflow">for</span> (; Pos != PosEnd; ++Pos) {</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>         <span class="keywordflow">if</span> (Pos->first == ModuleName)</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>       }</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> </div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>       <span class="keywordflow">if</span> (Pos != PosEnd) {</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>         <a class="code" href="classllvm_1_1SmallString.html">SmallString<256></a> CyclePath;</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>         <span class="keywordflow">for</span> (; Pos != PosEnd; ++Pos) {</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>           CyclePath += Pos->first;</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>           CyclePath += <span class="stringliteral">" -> "</span>;</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>         }</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>         CyclePath += ModuleName;</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> </div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>         <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ModuleNameLoc, diag::err_module_cycle)</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>           << ModuleName << CyclePath;</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>         <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>       }</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> </div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>       <span class="comment">// Check whether we have already attempted to build this module (but</span></div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>       <span class="comment">// failed).</span></div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a44f5c8763eb8a46ac41b13e2a56fde24">getPreprocessorOpts</a>().FailedModules &&</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>           <a class="code" href="classclang_1_1CompilerInstance.html#a44f5c8763eb8a46ac41b13e2a56fde24">getPreprocessorOpts</a>().FailedModules->hasAlreadyFailed(ModuleName)) {</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>         <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ModuleNameLoc, diag::err_module_not_built)</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>           << ModuleName</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>           << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ImportLoc, ModuleNameLoc);</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>         ModuleBuildFailed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>         <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>       }</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> </div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>       <span class="comment">// Try to compile the module.</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>       <a class="code" href="CompilerInstance_8cpp.html#aeafbdc0224b2f99d5f3a74b74b8e5483" title="Compile a module file for the given module, using the options provided by the importing compiler inst...">compileModule</a>(*<span class="keyword">this</span>, ModuleNameLoc, Module, ModuleFileName);</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> </div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>       <span class="comment">// Try to read the module file, now that we've compiled it.</span></div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>       <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243" title="The result of reading the control block of an AST file, which can fail for various reasons...">ASTReader::ASTReadResult</a> ReadResult</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>         = ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#a39c08f8450753c190a0c804ad453c870" title="Load the AST file designated by the given file name.">ReadAST</a>(ModuleFileName,</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>                                  <a class="code" href="namespaceclang_1_1serialization.html#ac4e913a3b4b4721b8995cb7dd6d9bb1ea22e2f1dba8920d73cd2979ca1e17a097" title="File is a module proper.">serialization::MK_Module</a>, ImportLoc,</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>                                  <a class="code" href="classclang_1_1ASTReader.html#a1ef10402198040c36f537a57bc633ca0a2c1c16a6ec81a0d9183f19a135468d55" title="The client can handle an AST file that cannot load because it is missing.">ASTReader::ARR_Missing</a>);</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>       <span class="keywordflow">if</span> (ReadResult != <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243a22a203378a875589f6013335def54572" title="The control block was read successfully. Aside from failures, the AST file is safe to read into the c...">ASTReader::Success</a>) {</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>         <span class="keywordflow">if</span> (ReadResult == <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243aec84e2a366d426f45d8d9e9e2509bfb2" title="The AST file was missing.">ASTReader::Missing</a>) {</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>           <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ModuleNameLoc,</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>                                   Module? diag::err_module_not_built</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>                                         : diag::err_module_not_found)</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>             << ModuleName</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>             << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ImportLoc, ModuleNameLoc);</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>         }</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> </div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>         <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CompilerInstance.html#a44f5c8763eb8a46ac41b13e2a56fde24">getPreprocessorOpts</a>().FailedModules)</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>           <a class="code" href="classclang_1_1CompilerInstance.html#a44f5c8763eb8a46ac41b13e2a56fde24">getPreprocessorOpts</a>().<a class="code" href="classclang_1_1PreprocessorOptions.html#adb8e88ad71e7890a8d54a6911fb1f8a6" title="The set of modules that failed to build.">FailedModules</a>->addFailed(ModuleName);</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>         KnownModules[Path[0].first] = 0;</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>         ModuleBuildFailed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>         <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</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> </div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>       <span class="comment">// Okay, we've rebuilt and now loaded the module.</span></div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>       <span class="keywordflow">break</span>;</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="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243ae145b87ff56754261c9f144c9d0adf73" title="The AST file was written by a different version of Clang.">ASTReader::VersionMismatch</a>:</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243a2b295dac09a7e70bca0730292a5ed436" title="The AST file was writtten with a different language/target configuration.">ASTReader::ConfigurationMismatch</a>:</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243aea1a4079a594b06c0f15d4d670bef68d" title="The AST file has errors.">ASTReader::HadErrors</a>:</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>       <a class="code" href="classclang_1_1ModuleLoader.html#a09f6c2bf60e24a1ccfa3802f09c0fd79">ModuleLoader::HadFatalFailure</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>       <span class="comment">// FIXME: The ASTReader will already have complained, but can we showhorn</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>       <span class="comment">// that diagnostic information into a more useful form?</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>       KnownModules[Path[0].first] = 0;</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> </div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ASTReader.html#ab2e8cada1e79a39d27461e0137550243ad2ad62e53379946597e50d557e8ef953" title="The AST file itself appears corrupted.">ASTReader::Failure</a>:</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>       <a class="code" href="classclang_1_1ModuleLoader.html#a09f6c2bf60e24a1ccfa3802f09c0fd79">ModuleLoader::HadFatalFailure</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>       <span class="comment">// Already complained, but note now that we failed.</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>       KnownModules[Path[0].first] = 0;</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>       ModuleBuildFailed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>     }</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>     </div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>     <span class="keywordflow">if</span> (!Module) {</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>       <span class="comment">// If we loaded the module directly, without finding a module map first,</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>       <span class="comment">// we'll have loaded the module's information from the module itself.</span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>       Module = PP->getHeaderSearchInfo().getModuleMap()</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>                  .findModule((Path[0].first->getName()));</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>     }</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> </div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>     <span class="comment">// Cache the result of this top-level module lookup for later.</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>     Known = KnownModules.insert(std::make_pair(Path[0].first, Module)).first;</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>   }</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>   </div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>   <span class="comment">// If we never found the module, fail.</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>   <span class="keywordflow">if</span> (!Module)</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>   </div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>   <span class="comment">// Verify that the rest of the module path actually corresponds to</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>   <span class="comment">// a submodule.</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>   <span class="keywordflow">if</span> (Path.size() > 1) {</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 1, N = Path.size(); I != N; ++I) {</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>       StringRef Name = Path[I].first->getName();</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>       <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">clang::Module</a> *Sub = Module-><a class="code" href="classclang_1_1Module.html#a8ee2001b1277a38d236ab433aed277f2" title="Find the submodule with the given name.">findSubmodule</a>(Name);</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>       </div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>       <span class="keywordflow">if</span> (!Sub) {</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>         <span class="comment">// Attempt to perform typo correction to find a module name that works.</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>         <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<StringRef, 2></a> Best;</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>         <span class="keywordtype">unsigned</span> <a class="code" href="CommentSema_8cpp.html#ac9b35cfcc6698eb2b8e3244d74e6d10d">BestEditDistance</a> = (std::numeric_limits<unsigned>::max)();</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">for</span> (<a class="code" href="classclang_1_1Module.html#aade7ef252a186121e056cf35f6d56fb5">clang::Module::submodule_iterator</a> J = Module-><a class="code" href="classclang_1_1Module.html#a9c95e62394e8873c8825a8c3993923d1">submodule_begin</a>(), </div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>                                             JEnd = Module-><a class="code" href="classclang_1_1Module.html#aefeb9dd237268b0c0f9ef0a2fb24dcf9">submodule_end</a>();</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>              J != JEnd; ++J) {</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>           <span class="keywordtype">unsigned</span> ED = Name.edit_distance((*J)->Name,</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>                                            <span class="comment">/*AllowReplacements=*/</span><span class="keyword">true</span>,</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>                                            BestEditDistance);</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>           <span class="keywordflow">if</span> (ED <= BestEditDistance) {</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>             <span class="keywordflow">if</span> (ED < BestEditDistance) {</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>               Best.clear();</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>               BestEditDistance = ED;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>             }</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>             </div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>             Best.push_back((*J)->Name);</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>           }</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>         }</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>         </div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>         <span class="comment">// If there was a clear winner, user it.</span></div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>         <span class="keywordflow">if</span> (Best.size() == 1) {</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>           <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Path[I].second, </div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>                                   diag::err_no_submodule_suggest)</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>             << Path[I].first << Module-><a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">getFullModuleName</a>() << Best[0]</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>             << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(Path[0].second, Path[I-1].second)</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>             << <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(Path[I].second),</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>                                             Best[0]);</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>           </div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>           Sub = Module-><a class="code" href="classclang_1_1Module.html#a8ee2001b1277a38d236ab433aed277f2" title="Find the submodule with the given name.">findSubmodule</a>(Best[0]);</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>         }</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>       }</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>       </div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>       <span class="keywordflow">if</span> (!Sub) {</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>         <span class="comment">// No submodule by this name. Complain, and don't look for further</span></div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>         <span class="comment">// submodules.</span></div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>         <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Path[I].second, diag::err_no_submodule)</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>           << Path[I].first << Module-><a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">getFullModuleName</a>()</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>           << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(Path[0].second, Path[I-1].second);</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</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>       Module = Sub;</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"> 1343</span>   </div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>   <span class="comment">// Make the named module visible, if it's not already part of the module</span></div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>   <span class="comment">// we are parsing.</span></div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>   <span class="keywordflow">if</span> (ModuleName != <a class="code" href="classclang_1_1CompilerInstance.html#ac9b612115b0b8bcef7e53fd8078ccecb">getLangOpts</a>().CurrentModule) {</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>     <span class="keywordflow">if</span> (!Module-><a class="code" href="classclang_1_1Module.html#ab947fac64520fa50e1b64c6672724b80" title="Whether this module was loaded from a module file.">IsFromModuleFile</a>) {</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>       <span class="comment">// We have an umbrella header or directory that doesn't actually include</span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>       <span class="comment">// all of the headers within the directory it covers. Complain about</span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>       <span class="comment">// this missing submodule and recover by forgetting that we ever saw</span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>       <span class="comment">// this submodule.</span></div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>       <span class="comment">// FIXME: Should we detect this at module load time? It seems fairly</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>       <span class="comment">// expensive (and rare).</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>       <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ImportLoc, diag::warn_missing_submodule)</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>         << Module-><a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">getFullModuleName</a>()</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>         << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(Path.front().second, Path.back().second);</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>       </div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>(0, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>     }</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> </div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>     <span class="comment">// Check whether this module is available.</span></div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>     <a class="code" href="classclang_1_1Module.html#af5d00f77d1d24ec6cd92bdddea038fce" title="An individual requirement: a feature name and a flag indicating the required state of that feature...">clang::Module::Requirement</a> Requirement;</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>     <span class="keywordflow">if</span> (!Module-><a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>(<a class="code" href="classclang_1_1CompilerInstance.html#ac9b612115b0b8bcef7e53fd8078ccecb">getLangOpts</a>(), <a class="code" href="classclang_1_1CompilerInstance.html#ab733722f416a30b1ed7550c1555dbf80">getTarget</a>(), Requirement)) {</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>       <a class="code" href="classclang_1_1CompilerInstance.html#af32d0eab634683f5a7b7b8a9c23cec1e" title="Get the current diagnostics engine.">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ImportLoc, diag::err_module_unavailable)</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>         << Module-><a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">getFullModuleName</a>()</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>         << Requirement.second << Requirement.first</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>         << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(Path.front().second, Path.back().second);</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>       LastModuleImportLoc = ImportLoc;</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>       LastModuleImportResult = <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>();</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>     ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#a5e5f186729969db7cbc81d30c7d4fd71" title="Make the entities in the given module and any of its (non-explicit) submodules visible to name lookup...">makeModuleVisible</a>(Module, Visibility, ImportLoc,</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>                                      <span class="comment">/*Complain=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>   }</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> </div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>   <span class="comment">// Check for any configuration macros that have changed.</span></div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>   <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">clang::Module</a> *TopModule = Module-><a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300" title="Retrieve the top-level module for this (sub)module, which may be this module.">getTopLevelModule</a>();</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = TopModule-><a class="code" href="classclang_1_1Module.html#a162d6fa484ed34109093c8264dd116d3" title="The set of "configuration macros", which are macros that (intentionally) change how this module is bu...">ConfigMacros</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>     <a class="code" href="CompilerInstance_8cpp.html#a95f09282d8e18a56d2dd3561ac21d6da" title="Diagnose differences between the current definition of the given configuration macro and the definiti...">checkConfigMacro</a>(<a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>(), TopModule-><a class="code" href="classclang_1_1Module.html#a162d6fa484ed34109093c8264dd116d3" title="The set of "configuration macros", which are macros that (intentionally) change how this module is bu...">ConfigMacros</a>[I],</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>                      Module, ImportLoc);</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>   }</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> </div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>   <span class="comment">// If this module import was due to an inclusion directive, create an </span></div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>   <span class="comment">// implicit import declaration to capture it in the AST.</span></div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>   <span class="keywordflow">if</span> (IsInclusionDirective && <a class="code" href="classclang_1_1CompilerInstance.html#a7766c4bd37874a2db70062863aafcc01">hasASTContext</a>()) {</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>     <a class="code" href="classclang_1_1TranslationUnitDecl.html" title="TranslationUnitDecl - The top declaration context.">TranslationUnitDecl</a> *TU = <a class="code" href="classclang_1_1CompilerInstance.html#a48b17496817d8a900aaebf55ed16fd56">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#abd909fb01ef10cfd0244832a67b1dd64">getTranslationUnitDecl</a>();</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>     <a class="code" href="classclang_1_1ImportDecl.html" title="Describes a module import declaration, which makes the contents of the named module visible in the cu...">ImportDecl</a> *ImportD = <a class="code" href="classclang_1_1ImportDecl.html#ae8ccc5ff357b49918708e8d84ea1cba8" title="Create a new module import declaration for an implicitly-generated import.">ImportDecl::CreateImplicit</a>(<a class="code" href="classclang_1_1CompilerInstance.html#a48b17496817d8a900aaebf55ed16fd56">getASTContext</a>(), TU,</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>                                                      ImportLoc, Module,</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>                                                      Path.back().second);</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>     TU-><a class="code" href="classclang_1_1DeclContext.html#a86d2d92d17fbed1a41461bef1ec5cef8" title="Add the declaration D into this context.">addDecl</a>(ImportD);</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>     <span class="keywordflow">if</span> (Consumer)</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>       Consumer->HandleImplicitImportDecl(ImportD);</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>   }</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>   </div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>   LastModuleImportLoc = ImportLoc;</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>   LastModuleImportResult = <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a>(Module, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>   <span class="keywordflow">return</span> LastModuleImportResult;</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"><a class="code" href="classclang_1_1CompilerInstance.html#af8598461c051d1f8328695b7d42ce270"> 1401</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CompilerInstance.html#af8598461c051d1f8328695b7d42ce270" title="Make the given module visible.">CompilerInstance::makeModuleVisible</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod,</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>                                          <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67" title="Describes the visibility of the various names within a particular module.">Module::NameVisibilityKind</a> <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>,</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>                                          <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ImportLoc,</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>                                          <span class="keywordtype">bool</span> Complain){</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>   ModuleManager-><a class="code" href="classclang_1_1ASTReader.html#a5e5f186729969db7cbc81d30c7d4fd71" title="Make the entities in the given module and any of its (non-explicit) submodules visible to name lookup...">makeModuleVisible</a>(Mod, Visibility, ImportLoc, Complain);</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> </div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:29 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInstance_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInstance_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInstance_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/CompilerInstance_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,763 @@
+<!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: CompilerInstance.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_cfd7caa53089bfce4c036750f74ca8fe.html">Frontend</a></li><li class="navelem"><a class="el" href="dir_d028e0ee810452766990d0b974c930cc.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CompilerInstance.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="CompilerInstance_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/Frontend/Release+Asserts/CompilerInstance.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/Release+Asserts/CompilerInstance.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  CompilerInstance.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CompilerInstance.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../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/Frontend/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../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/Frontend/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.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/TimeValue.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CompilerInvocation.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CodeGenOptions.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CodeGenOptions.def \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/DependencyOutputOptions.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/FrontendOptions.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/CommandLineSourceLoc.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/LangStandard.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/LangStandards.def \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/MigratorOptions.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/PreprocessorOutputOptions.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearchOptions.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorOptions.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTConsumer.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Version.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Version.inc \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/ChainedDiagnosticConsumer.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/FrontendAction.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/FrontendActions.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/FrontendDiagnostic.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticFrontendKinds.inc \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/LogDiagnosticPrinter.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/SerializedDiagnosticPrinter.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitstreamWriter.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/TextDiagnosticPrinter.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/Utils.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/VerifyDiagnosticConsumer.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/CodeCompleteConsumer.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang-c/Index.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang-c/Platform.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang-c/<a class="code" href="structCXString.html" title="A character string.">CXString</a>.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>  /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00205"></a><span c