[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/ModuleManager_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleManager_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleManager_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleManager_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,362 @@
+<!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: ModuleManager.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_0dc2050340a96003388a0ee3c6e6b064.html">Serialization</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ModuleManager.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ModuleManager_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">//===--- ModuleManager.cpp - Module Manager ---------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This file defines the ModuleManager class, which manages a set of loaded</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// modules for the ASTReader.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef LLVM_CLANG_SERIALIZATION_MODULE_MANAGER_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_SERIALIZATION_MODULE_MANAGER_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="FileManager_8h.html" title="Defines the clang::FileManager interface and associated types.">clang/Basic/FileManager.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="Serialization_2Module_8h.html">clang/Serialization/Module.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span>clang { </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">class </span>GlobalModuleIndex;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">class </span>ModuleMap;</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="keyword">namespace </span>serialization {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">/// \brief Manages the set of modules loaded by an AST reader.</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html"> 30</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html" title="Manages the set of modules loaded by an AST reader.">ModuleManager</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> /// \brief The chain of AST files. The first entry is the one named by the</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> /// user, the last one is the one that doesn't depend on anything further.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"></span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ModuleFile *, 2></a> Chain;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"></span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> /// \brief All loaded modules, indexed by name.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"></span> llvm::DenseMap<const FileEntry *, ModuleFile *> Modules;</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"> /// \brief FileManager that handles translating between filenames and</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> /// FileEntry *.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"></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="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 A lookup of in-memory (virtual file) buffers</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"></span> llvm::DenseMap<const FileEntry *, llvm::MemoryBuffer *> InMemoryBuffers;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> /// \brief The visitation order.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"></span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ModuleFile *, 4></a> VisitOrder;</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 list of module files that both we and the global module index</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> /// know about.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> /// Either the global index or the module manager may have modules that the</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> /// other does not know about, because the global index can be out-of-date</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> /// (in which case the module manager could have modules it does not) and</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> /// this particular translation unit might not have loaded all of the modules</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> /// known to the global index.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"></span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ModuleFile *, 4></a> ModulesInCommonWithGlobalIndex;</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"> /// \brief The global module index, if one is attached.</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"> /// The global module index will actually be owned by the ASTReader; this is</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> /// just an non-owning pointer.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"></span> <a class="code" href="classclang_1_1GlobalModuleIndex.html" title="A global index for a set of module files, providing information about the identifiers within those mo...">GlobalModuleIndex</a> *GlobalIndex;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> /// \brief State used by the "visit" operation to avoid malloc traffic in</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> /// calls to visit().</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"></span> <span class="keyword">struct </span>VisitState {</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">explicit</span> VisitState(<span class="keywordtype">unsigned</span> N)</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> : VisitNumber(N, 0), NextVisitNumber(1), NextState(0)</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> <a class="code" href="UnwrappedLineParser_8cpp.html#a118f9e9887ee5c70966fe9b74b815f79">Stack</a>.reserve(N);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> ~VisitState() {</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">delete</span> NextState;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"></span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> /// \brief The stack used when marking the imports of a particular module</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> /// as not-to-be-visited.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"></span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ModuleFile *, 4></a> <a class="code" href="UnwrappedLineParser_8cpp.html#a118f9e9887ee5c70966fe9b74b815f79">Stack</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"></span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"> /// \brief The visit number of each module file, which indicates when</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment"> /// this module file was last visited.</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"></span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 4></a> VisitNumber;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"></span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"> /// \brief The next visit number to use to mark visited module files.</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"></span> <span class="keywordtype">unsigned</span> NextVisitNumber;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"></span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> /// \brief The next visit state.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment"></span> VisitState *NextState;</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="comment"></span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> /// \brief The first visit() state in the chain.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"></span> VisitState *FirstVisitState;</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> VisitState *allocateVisitState();</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">void</span> returnVisitState(VisitState *<a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a45d0c34b971032d2314c7b69f1603939"> 99</a></span> <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<ModuleFile*>::iterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a45d0c34b971032d2314c7b69f1603939">ModuleIterator</a>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3759caf5e3ac84ffe58f6d2fd884b8d2"> 100</a></span> <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<ModuleFile*>::const_iterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3759caf5e3ac84ffe58f6d2fd884b8d2">ModuleConstIterator</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3e102cbc84899a38ecbdb37cc6bcade8"> 101</a></span> <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<ModuleFile*>::reverse_iterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3e102cbc84899a38ecbdb37cc6bcade8">ModuleReverseIterator</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#af047c1a5ab38420046f5345245bdc482"> 102</a></span> <span class="keyword">typedef</span> std::pair<uint32_t, StringRef> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#af047c1a5ab38420046f5345245bdc482">ModuleOffset</a>;</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="keyword">explicit</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a28a78b4bb2dc8ffe55dbfbd7e9947ef2">ModuleManager</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="l00105"></a><span class="lineno"> 105</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a4f7e83d51dcbc461d2514f44d21aacb4">~ModuleManager</a>();</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"></span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> /// \brief Forward iterator to traverse all loaded modules. This is reverse</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"> /// source-order.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a6e426db31e4fb8f13e7b4c80ae40b7d5"> 109</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a45d0c34b971032d2314c7b69f1603939">ModuleIterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a6e426db31e4fb8f13e7b4c80ae40b7d5" title="Forward iterator to traverse all loaded modules. This is reverse source-order.">begin</a>() { <span class="keywordflow">return</span> Chain.begin(); }<span class="comment"></span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> /// \brief Forward iterator end-point to traverse all loaded modules</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a9ae0715ad1ab54078eab0c41b144b263"> 111</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a45d0c34b971032d2314c7b69f1603939">ModuleIterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a9ae0715ad1ab54078eab0c41b144b263" title="Forward iterator end-point to traverse all loaded modules.">end</a>() { <span class="keywordflow">return</span> Chain.end(); }</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"></span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"> /// \brief Const forward iterator to traverse all loaded modules. This is </span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> /// in reverse source-order.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#ada5c50f844427eaefffe11220f3a6807"> 115</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3759caf5e3ac84ffe58f6d2fd884b8d2">ModuleConstIterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#ada5c50f844427eaefffe11220f3a6807" title="Const forward iterator to traverse all loaded modules. This is in reverse source-order.">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Chain.begin(); }<span class="comment"></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> /// \brief Const forward iterator end-point to traverse all loaded modules</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a4aa1862018c5840d6979369988384fc2"> 117</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3759caf5e3ac84ffe58f6d2fd884b8d2">ModuleConstIterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a4aa1862018c5840d6979369988384fc2" title="Const forward iterator end-point to traverse all loaded modules.">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Chain.end(); }</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 Reverse iterator to traverse all loaded modules. This is in </span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> /// source order.</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a5a3e9ad21f7bda93f65f316126f35d91"> 121</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3e102cbc84899a38ecbdb37cc6bcade8">ModuleReverseIterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a5a3e9ad21f7bda93f65f316126f35d91" title="Reverse iterator to traverse all loaded modules. This is in source order.">rbegin</a>() { <span class="keywordflow">return</span> Chain.rbegin(); }<span class="comment"></span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> /// \brief Reverse iterator end-point to traverse all loaded modules.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#ac87569fa216d66398e8ff3b0de6fcdbc"> 123</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3e102cbc84899a38ecbdb37cc6bcade8">ModuleReverseIterator</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#ac87569fa216d66398e8ff3b0de6fcdbc" title="Reverse iterator end-point to traverse all loaded modules.">rend</a>() { <span class="keywordflow">return</span> Chain.rend(); }</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"></span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> /// \brief Returns the primary module associated with the manager, that is,</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> /// the first module loaded</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3789c7d5f6dcec7382ef69d452607164"> 127</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &<a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3789c7d5f6dcec7382ef69d452607164" title="Returns the primary module associated with the manager, that is, the first module loaded...">getPrimaryModule</a>() { <span class="keywordflow">return</span> *Chain[0]; }</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"></span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> /// \brief Returns the primary module associated with the manager, that is,</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"> /// the first module loaded.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a1da83366d2b656c805020e0cb83fad27"> 131</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &<a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a1da83366d2b656c805020e0cb83fad27" title="Returns the primary module associated with the manager, that is, the first module loaded...">getPrimaryModule</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *Chain[0]; }</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"></span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment"> /// \brief Returns the module associated with the given index</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a6bc781897693fb96397fdef0623d0576"> 134</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &<a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a6bc781897693fb96397fdef0623d0576" title="Returns the module associated with the given index.">operator[]</a>(<span class="keywordtype">unsigned</span> Index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *Chain[Index]; }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"></span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"> /// \brief Returns the module associated with the given name</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> *<a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a4b14a8eba3914c834a5c6888d8d4aa7b" title="Returns the module associated with the given name.">lookup</a>(StringRef Name);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"></span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> /// \brief Returns the module associated with the given module file.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> *<a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a4b14a8eba3914c834a5c6888d8d4aa7b" title="Returns the module associated with the given name.">lookup</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File);</div>
+<div class="line"><a name="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 Returns the in-memory (virtual file) buffer with the given name</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"></span> llvm::MemoryBuffer *<a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a7ac9c796d34765d381ac09eb437053f3" title="Returns the in-memory (virtual file) buffer with the given name.">lookupBuffer</a>(StringRef Name);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"></span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment"> /// \brief Number of modules loaded</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a10380278939524dc363ae4baf37f8be0"> 146</a></span> <span class="comment"></span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a10380278939524dc363ae4baf37f8be0" title="Number of modules loaded.">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Chain.size(); }</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment"></span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"> /// \brief The result of attempting to add a new module.</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247e"> 149</a></span> <span class="comment"></span> <span class="keyword">enum</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247e" title="The result of attempting to add a new module.">AddModuleResult</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"> /// \brief The module file had already been loaded.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247eac6380ac7fe96921fca1cb6531e2d9b15"> 151</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247eac6380ac7fe96921fca1cb6531e2d9b15" title="The module file had already been loaded.">AlreadyLoaded</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment"> /// \brief The module file was just loaded in response to this call.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247ea8dee337c18357c59f649d5943c792ca5"> 153</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247ea8dee337c18357c59f649d5943c792ca5" title="The module file was just loaded in response to this call.">NewlyLoaded</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment"> /// \brief The module file is missing.</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247ea004dcab30bfaf597bd12a6aaa1593c59"> 155</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247ea004dcab30bfaf597bd12a6aaa1593c59" title="The module file is missing.">Missing</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment"> /// \brief The module file is out-of-date.</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247ea201fdd1ab5aa641d6866d441b984102a"> 157</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247ea201fdd1ab5aa641d6866d441b984102a" title="The module file is out-of-date.">OutOfDate</a></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> };</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment"></span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"> /// \brief Attempts to create a new module and add it to the list of known</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment"> /// modules.</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment"> /// \param FileName The file name of the module to be loaded.</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"> /// \param Type The kind of module being loaded.</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 ImportLoc The location at which the module is imported.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment"> /// \param ImportedBy The module that is importing this module, or NULL if</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment"> /// this module is imported directly by the user.</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"> /// \param Generation The generation in which this module was loaded.</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"> /// \param ExpectedSize The expected size of the module file, used for</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment"> /// validation. This will be zero if unknown.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment"> /// \param ExpectedModTime The expected modification time of the module</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment"> /// file, used for validation. This will be zero if unknown.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment"> /// \param Module A pointer to the module file if the module was successfully</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment"> /// loaded.</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment"> /// \param ErrorStr Will be set to a non-empty string if any errors occurred</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment"> /// while trying to load the module.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment"> /// \return A pointer to the module that corresponds to this file name,</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment"> /// and a value indicating whether the module was loaded.</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment"></span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a3d4d359e0be095e787167c26501f247e" title="The result of attempting to add a new module.">AddModuleResult</a> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a23485b84fb8a7539b80e2de48e8550f1" title="Attempts to create a new module and add it to the list of known modules.">addModule</a>(StringRef FileName, <a class="code" href="namespaceclang_1_1serialization.html#ac4e913a3b4b4721b8995cb7dd6d9bb1e" title="Specifies the kind of module that has been loaded.">ModuleKind</a> <a class="code" href="classclang_1_1Type.html">Type</a>,</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</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="l00190"></a><span class="lineno"> 190</span> <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> *ImportedBy, <span class="keywordtype">unsigned</span> Generation,</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> off_t ExpectedSize, time_t ExpectedModTime,</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> *&<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a>,</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> std::string &ErrorStr);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"></span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> /// \brief Remove the given set of modules.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a06cbf8d6526c680f265f4154f21f80f0" title="Remove the given set of modules.">removeModules</a>(<a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a45d0c34b971032d2314c7b69f1603939">ModuleIterator</a> first, <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a45d0c34b971032d2314c7b69f1603939">ModuleIterator</a> last,</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> *modMap);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment"></span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment"> /// \brief Add an in-memory buffer the list of known buffers</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#ac2ef87d9d068134e771e6e00492c5c77" title="Add an in-memory buffer the list of known buffers.">addInMemoryBuffer</a>(StringRef FileName, llvm::MemoryBuffer *Buffer);</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"> /// \brief Set the global module index.</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a71e29834c501fcdf3974877c5d6cde0d" title="Set the global module index.">setGlobalIndex</a>(<a class="code" href="classclang_1_1GlobalModuleIndex.html" title="A global index for a set of module files, providing information about the identifiers within those mo...">GlobalModuleIndex</a> *Index);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment"></span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment"> /// \brief Notification from the AST reader that the given module file</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment"> /// has been "accepted", and will not (can not) be unloaded.</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a47c7af47c60288c5254e2ea0d696200c" title="Notification from the AST reader that the given module file has been "accepted", and will not (can no...">moduleFileAccepted</a>(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> *MF);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment"></span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment"> /// \brief Visit each of the modules.</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment"> /// This routine visits each of the modules, starting with the</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment"> /// "root" modules that no other loaded modules depend on, and</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment"> /// proceeding to the leaf modules, visiting each module only once</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment"> /// during the traversal.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment"> /// This traversal is intended to support various "lookup"</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment"> /// operations that can find data in any of the loaded modules.</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment"> /// \param Visitor A visitor function that will be invoked with each</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment"> /// module and the given user data pointer. The return value must be</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment"> /// convertible to bool; when false, the visitation continues to</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment"> /// modules that the current module depends on. When true, the</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment"> /// visitation skips any modules that the current module depends on.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment"> /// \param UserData User data associated with the visitor object, which</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment"> /// will be passed along to the visitor.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment"> /// \param ModuleFilesHit If non-NULL, contains the set of module files</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment"> /// that we know we need to visit because the global module index told us to.</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment"> /// Any module that is known to both the global module index and the module</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment"> /// manager that is *not* in this set can be skipped.</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#ac18e863c625539f388b9b5dfe123086b" title="Visit each of the modules.">visit</a>(<span class="keywordtype">bool</span> (*Visitor)(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M, <span class="keywordtype">void</span> *UserData), <span class="keywordtype">void</span> *UserData,</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> llvm::SmallPtrSet<ModuleFile *, 4> *ModuleFilesHit = 0);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment"></span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment"> /// \brief Visit each of the modules with a depth-first traversal.</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment"> /// This routine visits each of the modules known to the module</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment"> /// manager using a depth-first search, starting with the first</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment"> /// loaded module. The traversal invokes the callback both before</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment"> /// traversing the children (preorder traversal) and after</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment"> /// traversing the children (postorder traversal).</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment"> /// \param Visitor A visitor function that will be invoked with each</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"> /// module and given a \c Preorder flag that indicates whether we're</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment"> /// visiting the module before or after visiting its children. The</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment"> /// visitor may return true at any time to abort the depth-first</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment"> /// visitation.</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment"> /// \param UserData User data ssociated with the visitor object,</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment"> /// which will be passed along to the user.</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a281ae5b792559a52bde94650192b7c0f" title="Visit each of the modules with a depth-first traversal.">visitDepthFirst</a>(<span class="keywordtype">bool</span> (*Visitor)(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M, <span class="keywordtype">bool</span> Preorder, </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keywordtype">void</span> *UserData), </div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keywordtype">void</span> *UserData);</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment"></span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment"> /// \brief Attempt to resolve the given module file name to a file entry.</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment"> /// \param FileName The name of the module file.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment"> /// \param ExpectedSize The size that the module file is expected to have.</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment"> /// If the actual size differs, the resolver should return \c true.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment"> /// \param ExpectedModTime The modification time that the module file is</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment"> /// expected to have. If the actual modification time differs, the resolver</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment"> /// should return \c true.</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment"> /// \param File Will be set to the file if there is one, or null</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment"> /// otherwise.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment"> /// \returns True if a file exists but does not meet the size/</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment"> /// modification time criteria, false if the file is either available and</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment"> /// suitable, or is missing.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#af2e264eb2a0c7f544ff1a2062048753f" title="Attempt to resolve the given module file name to a file entry.">lookupModuleFile</a>(StringRef FileName,</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> off_t ExpectedSize,</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> time_t ExpectedModTime,</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</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);</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment"></span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="comment"> /// \brief View the graphviz representation of the module graph.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1serialization_1_1ModuleManager.html#a646175dce481c60e387276979b0a6dd5" title="View the graphviz representation of the module graph.">viewGraph</a>();</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> };</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> } } <span class="comment">// end namespace clang::serialization</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:43 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more
+information.</p>
+</body>
+</html>
Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,2220 @@
+<!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: ModuleMap.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_925be8e1c75f746b0aee1084b3b1a980.html">Lex</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ModuleMap.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ModuleMap_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">//===--- ModuleMap.cpp - Describe the layout of modules ---------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This file defines the ModuleMap implementation, which describes the layout</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// of a module as it relates to headers.</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> <span class="preprocessor">#include "<a class="code" href="ModuleMap_8h.html">clang/Lex/ModuleMap.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="CharInfo_8h.html">clang/Basic/CharInfo.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</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="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="DiagnosticOptions_8h.html">clang/Basic/DiagnosticOptions.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</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="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="TargetOptions_8h.html" title="Defines the clang::TargetOptions class.">clang/Basic/TargetOptions.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="HeaderSearch_8h.html">clang/Lex/HeaderSearch.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="LexDiagnostic_8h.html">clang/Lex/LexDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="Lexer_8h.html">clang/Lex/Lexer.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="LiteralSupport_8h.html">clang/Lex/LiteralSupport.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "llvm/ADT/StringSwitch.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "llvm/Support/Allocator.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "llvm/Support/FileSystem.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "llvm/Support/Host.h"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "llvm/Support/Path.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <stdlib.h></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if defined(LLVM_ON_UNIX)</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span><span class="preprocessor">#include <<a class="code" href="limits_8h.html">limits.h</a>></span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="keyword">using namespace </span>clang;</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_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> ModuleMap::resolveExport(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html" title="Describes an exported module that has not yet been resolved (perhaps because the module it refers to ...">Module::UnresolvedExportDecl</a> &Unresolved,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordtype">bool</span> Complain)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// We may have just a wildcard.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">if</span> (Unresolved.<a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#acdcebf92eeac8b0448d3db4ebff40395" title="The name of the module.">Id</a>.empty()) {</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> assert(Unresolved.<a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#aa519b34242ddc787d61235d883f4700c" title="Whether this export declaration ends in a wildcard, indicating that all of its submodules should be e...">Wildcard</a> && <span class="stringliteral">"Invalid unresolved export"</span>);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a>(0, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// Resolve the module-id.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a> = resolveModuleId(Unresolved.<a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#acdcebf92eeac8b0448d3db4ebff40395" title="The name of the module.">Id</a>, Mod, Complain);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span> (!Context)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a>();</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a>(Context, Unresolved.<a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#aa519b34242ddc787d61235d883f4700c" title="Whether this export declaration ends in a wildcard, indicating that all of its submodules should be e...">Wildcard</a>);</div>
+<div class="line"><a name="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> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *ModuleMap::resolveModuleId(<span class="keyword">const</span> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> &Id, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">bool</span> Complain)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// Find the starting module.</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Context = <a class="code" href="classclang_1_1ModuleMap.html#a4227573c64ca68ac5f24f27de1f57b49" title="Retrieve a module with the given name using lexical name lookup, starting at the given context...">lookupModuleUnqualified</a>(Id[0].first, Mod);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">if</span> (!Context) {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span> (Complain)</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> Diags->Report(Id[0].second, diag::err_mmap_missing_module_unqualified)</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> << Id[0].first << 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="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">return</span> 0;</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> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// Dig into the module path.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 1, N = Id.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Sub = <a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(Id[I].first, Context);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (!Sub) {</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">if</span> (Complain)</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> Diags->Report(Id[I].second, diag::err_mmap_missing_module_qualified)</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> << Id[I].first << Context-><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="l00075"></a><span class="lineno"> 75</span> << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(Id[0].second, Id[I-1].second);</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">return</span> 0;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> }</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> Context = Sub;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a34520f3076456909ca2ac7e391dc12e2"> 86</a></span> <a class="code" href="classclang_1_1ModuleMap.html#a34520f3076456909ca2ac7e391dc12e2" title="Construct a new module map.">ModuleMap::ModuleMap</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="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</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> &DC,</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts, <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> *Target,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</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)</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> : SourceMgr(SourceMgr), LangOpts(LangOpts), Target(Target),</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> HeaderInfo(HeaderInfo), BuiltinIncludeDir(0), CompilingModule(0),</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> SourceModule(0) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<DiagnosticIDs></a> DiagIDs(<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="l00093"></a><span class="lineno"> 93</span> Diags = <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<DiagnosticsEngine></a>(</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <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>(DiagIDs, <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="l00095"></a><span class="lineno"> 95</span> Diags->setClient(<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>(DC),</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">/*ShouldOwnClient=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> Diags->setSourceManager(&SourceMgr);</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_1ModuleMap.html#ab8769cd7eba3cb7f8f1cd2dde890603d"> 100</a></span> <a class="code" href="classclang_1_1ModuleMap.html#ab8769cd7eba3cb7f8f1cd2dde890603d" title="Destroy the module map.">ModuleMap::~ModuleMap</a>() {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">for</span> (llvm::StringMap<Module *>::iterator I = Modules.begin(), </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> IEnd = Modules.end();</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> I != IEnd; ++I) {</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">delete</span> I->getValue();</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> }</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#abc441df169e00dbd5ab3a5db003d454f"> 108</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#abc441df169e00dbd5ab3a5db003d454f" title="Set the target information.">ModuleMap::setTarget</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target) {</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> assert((!this->Target || this->Target == &Target) && </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="stringliteral">"Improper target override"</span>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> this->Target = &Target;</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"></span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">/// \brief "Sanitize" a filename so that it can be used as an identifier.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="ModuleMap_8cpp.html#a7a52c9b4721ce779ea587ea2d4d6c802"> 115</a></span> <span class="comment"></span><span class="keyword">static</span> StringRef <a class="code" href="ModuleMap_8cpp.html#a7a52c9b4721ce779ea587ea2d4d6c802" title=""Sanitize" a filename so that it can be used as an identifier.">sanitizeFilenameAsIdentifier</a>(StringRef Name,</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<char></a> &Buffer) {</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">if</span> (Name.empty())</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="keywordflow">if</span> (!<a class="code" href="namespaceclang.html#ac29c2aade1752d6508313947ae5e177b">isValidIdentifier</a>(Name)) {</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// If we don't already have something with the form of an identifier,</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// create a buffer with the sanitized name.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> Buffer.clear();</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceclang.html#a8e582a38f36d9c625d3e31bce653befe" title="Return true if this character is an ASCII digit: [0-9].">isDigit</a>(Name[0]))</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> Buffer.push_back(<span class="charliteral">'_'</span>);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> Buffer.reserve(Buffer.size() + Name.size());</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Name.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceclang.html#a9135ccefd791dcad66d31a5d83a8e8bf">isIdentifierBody</a>(Name[I]))</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> Buffer.push_back(Name[I]);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> Buffer.push_back(<span class="charliteral">'_'</span>);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> Name = StringRef(Buffer.data(), Buffer.size());</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">while</span> (llvm::StringSwitch<bool>(Name)</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#define KEYWORD(Keyword,Conditions) .Case(#Keyword, true)</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"></span><span class="preprocessor">#define ALIAS(Keyword, AliasOf, Conditions) .Case(Keyword, true)</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"></span><span class="preprocessor">#include "clang/Basic/TokenKinds.def"</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> .Default(<span class="keyword">false</span>)) {</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span> (Name.data() != Buffer.data())</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> Buffer.append(Name.begin(), Name.end());</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> Buffer.push_back(<span class="charliteral">'_'</span>);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> Name = StringRef(Buffer.data(), Buffer.size());</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> <span class="keywordflow">return</span> Name;</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="comment"></span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">/// \brief Determine whether the given file name is the name of a builtin</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">/// header, supplied by Clang to replace, override, or augment existing system</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">/// headers.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="ModuleMap_8cpp.html#a6b6fef8d0ee38234c3fff3e6f328474d"> 154</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="ModuleMap_8cpp.html#a6b6fef8d0ee38234c3fff3e6f328474d" title="Determine whether the given file name is the name of a builtin header, supplied by Clang to replace...">isBuiltinHeader</a>(StringRef FileName) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">return</span> llvm::StringSwitch<bool>(FileName)</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> .Case(<span class="stringliteral">"float.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> .Case(<span class="stringliteral">"iso646.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> .Case(<span class="stringliteral">"limits.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> .Case(<span class="stringliteral">"stdalign.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> .Case(<span class="stringliteral">"stdarg.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> .Case(<span class="stringliteral">"stdbool.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> .Case(<span class="stringliteral">"stddef.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> .Case(<span class="stringliteral">"stdint.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> .Case(<span class="stringliteral">"tgmath.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> .Case(<span class="stringliteral">"unwind.h"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> .Default(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> }</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">ModuleMap::KnownHeader</a></div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a127dbf10d2e3134aedb7d7c60cf23cc9"> 170</a></span> <a class="code" href="classclang_1_1ModuleMap.html#a127dbf10d2e3134aedb7d7c60cf23cc9" title="Retrieve the module that owns the given header file, if any.">ModuleMap::findModuleForHeader</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File,</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *RequestingModule) {</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> HeadersMap::iterator Known = Headers.find(File);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">if</span> (Known != Headers.end()) {</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">ModuleMap::KnownHeader</a> Result = <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">KnownHeader</a>();</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// Iterate over all modules that 'File' is part of to find the best fit.</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<KnownHeader>::iterator</a> I = Known->second.begin(),</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> E = Known->second.end();</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> I != E; ++I) {</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// Cannot use a module if the header is excluded or unavailable in it.</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">if</span> (I->getRole() == <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca29ca8d089c3fd646d54e611219d0d877" title="This header is explicitly excluded from the module.">ModuleMap::ExcludedHeader</a> ||</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> !I->getModule()->isAvailable())</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// If 'File' is part of 'RequestingModule', 'RequestingModule' is the</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// module we are looking for.</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">if</span> (I->getModule() == RequestingModule)</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">return</span> *I;</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="comment">// If uses need to be specified explicitly, we are only allowed to return</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// modules that are explicitly used by the requesting module.</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keywordflow">if</span> (RequestingModule && LangOpts.ModulesDeclUse &&</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> std::find(RequestingModule-><a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e" title="The directly used modules.">DirectUses</a>.begin(),</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> RequestingModule-><a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e" title="The directly used modules.">DirectUses</a>.end(),</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> I->getModule()) == RequestingModule-><a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e" title="The directly used modules.">DirectUses</a>.end())</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> Result = *I;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// If 'File' is a public header of this module, this is as good as we</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">// are going to get.</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">if</span> (I->getRole() == <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca50b6dee47a2d5b1f50f46dc46e4c96aa" title="This header is normally included in the module.">ModuleMap::NormalHeader</a>)</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">break</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="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// If we've found a builtin header within Clang's builtin include directory,</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// load all of the module maps to see if it will get associated with a</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// specific module (e.g., in /usr/include).</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">if</span> (File-><a class="code" href="classclang_1_1FileEntry.html#a93533898e5cfd56df70289244f623fd6" title="Return the directory the file lives in.">getDir</a>() == BuiltinIncludeDir &&</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <a class="code" href="ModuleMap_8cpp.html#a6b6fef8d0ee38234c3fff3e6f328474d" title="Determine whether the given file name is the name of a builtin header, supplied by Clang to replace...">isBuiltinHeader</a>(llvm::sys::path::filename(File-><a class="code" href="classclang_1_1FileEntry.html#a94ddac74f217c35e19420dd6c419e25f">getName</a>()))) {</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a7998076a7a2d0fb9246014cf246d4774" title="Load all known, top-level system modules.">loadTopLevelSystemModules</a>();</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">// Check again.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">if</span> (Headers.find(File) != Headers.end())</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleMap.html#a127dbf10d2e3134aedb7d7c60cf23cc9" title="Retrieve the module that owns the given header file, if any.">findModuleForHeader</a>(File, RequestingModule);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> }</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *Dir = File-><a class="code" href="classclang_1_1FileEntry.html#a93533898e5cfd56df70289244f623fd6" title="Return the directory the file lives in.">getDir</a>();</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const DirectoryEntry *, 2></a> SkippedDirs;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment">// Note: as an egregious but useful hack we use the real path here, because</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment">// frameworks moving from top-level frameworks to embedded frameworks tend</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment">// to be symlinked from the top-level location to the embedded location,</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// and we need to resolve lookups as if we had found the embedded location.</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> StringRef DirName = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#aefc9a0b6440701f04541eb6e74447bb2" title="Retrieve the canonical name for a given directory.">getCanonicalName</a>(Dir);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// Keep walking up the directory hierarchy, looking for a directory with</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// an umbrella header.</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">do</span> { </div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> llvm::DenseMap<const DirectoryEntry *, Module *>::iterator KnownDir</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> = UmbrellaDirs.find(Dir);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">if</span> (KnownDir != UmbrellaDirs.end()) {</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Result = KnownDir->second;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment">// Search up the module stack until we find a module with an umbrella</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// directory.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *UmbrellaModule = Result;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">while</span> (!UmbrellaModule-><a class="code" href="classclang_1_1Module.html#a2a142c05e037bb81a45fdf60c236cea7" title="Retrieve the directory for which this module serves as the umbrella.">getUmbrellaDir</a>() && UmbrellaModule-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>)</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> UmbrellaModule = UmbrellaModule-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (UmbrellaModule-><a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c" title="Whether we should infer submodules for this module based on the headers.">InferSubmodules</a>) {</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// Infer submodules for each of the directories we found between</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment">// the directory of the umbrella header and the directory where </span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment">// the actual header is located.</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keywordtype">bool</span> Explicit = UmbrellaModule-><a class="code" href="classclang_1_1Module.html#ae64ff7e3ba9cb2d5fa98f6b55c58d921" title="Whether, when inferring submodules, the inferred submodules should be explicit.">InferExplicitSubmodules</a>;</div>
+<div class="line"><a name="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> (<span class="keywordtype">unsigned</span> I = SkippedDirs.size(); I != 0; --I) {</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// Find or create the module that corresponds to this directory name.</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<32></a> NameBuf;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> StringRef Name = <a class="code" href="ModuleMap_8cpp.html#a7a52c9b4721ce779ea587ea2d4d6c802" title=""Sanitize" a filename so that it can be used as an identifier.">sanitizeFilenameAsIdentifier</a>(</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> llvm::sys::path::stem(SkippedDirs[I-1]->getName()),</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> NameBuf);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> Result = <a class="code" href="classclang_1_1ModuleMap.html#a115a5b7b114346aaa534995084fc3ac0" title="Find a new module or submodule, or create it if it does not already exist.">findOrCreateModule</a>(Name, Result, <span class="comment">/*IsFramework=*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> Explicit).first;</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> <span class="comment">// Associate the module and the directory.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> UmbrellaDirs[SkippedDirs[I-1]] = Result;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment">// If inferred submodules export everything they import, add a </span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment">// wildcard to the set of exports.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">if</span> (UmbrellaModule-><a class="code" href="classclang_1_1Module.html#aab3a3e63b2c07e737f21296484abbcf9" title="Whether, when inferring submodules, the inferr submodules should export all modules they import (e...">InferExportWildcard</a> && Result-><a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>.empty())</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> Result-><a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>.push_back(<a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a>(0, <span class="keyword">true</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> </div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// Infer a submodule with the same name as this header file.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<32></a> NameBuf;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> StringRef Name = <a class="code" href="ModuleMap_8cpp.html#a7a52c9b4721ce779ea587ea2d4d6c802" title=""Sanitize" a filename so that it can be used as an identifier.">sanitizeFilenameAsIdentifier</a>(</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> llvm::sys::path::stem(File-><a class="code" href="classclang_1_1FileEntry.html#a94ddac74f217c35e19420dd6c419e25f">getName</a>()), NameBuf);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> Result = <a class="code" href="classclang_1_1ModuleMap.html#a115a5b7b114346aaa534995084fc3ac0" title="Find a new module or submodule, or create it if it does not already exist.">findOrCreateModule</a>(Name, Result, <span class="comment">/*IsFramework=*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> Explicit).first;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> Result-><a class="code" href="classclang_1_1Module.html#a6ad1e8c7329d41f481dd3b6e193ed4ed" title="Add a top-level header associated with this module.">addTopHeader</a>(File);</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">// If inferred submodules export everything they import, add a </span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// wildcard to the set of exports.</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">if</span> (UmbrellaModule-><a class="code" href="classclang_1_1Module.html#aab3a3e63b2c07e737f21296484abbcf9" title="Whether, when inferring submodules, the inferr submodules should export all modules they import (e...">InferExportWildcard</a> && Result-><a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>.empty())</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> Result-><a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>.push_back(<a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a>(0, <span class="keyword">true</span>));</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment">// Record each of the directories we stepped through as being part of</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">// the module we found, since the umbrella header covers them all.</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = SkippedDirs.size(); I != N; ++I)</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> UmbrellaDirs[SkippedDirs[I]] = Result;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> }</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> Headers[File].push_back(<a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">KnownHeader</a>(Result, <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca50b6dee47a2d5b1f50f46dc46e4c96aa" title="This header is normally included in the module.">NormalHeader</a>));</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment">// If a header corresponds to an unavailable module, don't report</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="comment">// that it maps to anything.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">if</span> (!Result-><a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>())</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">KnownHeader</a>();</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">return</span> Headers[File].back();</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> }</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> SkippedDirs.push_back(Dir);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment">// Retrieve our parent path.</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> DirName = llvm::sys::path::parent_path(DirName);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">if</span> (DirName.empty())</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="comment">// Resolve the parent path to a directory entry.</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> Dir = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(DirName);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> } <span class="keywordflow">while</span> (Dir);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">KnownHeader</a>();</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> }</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#af4fbca415ce7cbde70d1fc96d9285d10"> 308</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#af4fbca415ce7cbde70d1fc96d9285d10" title="Determine whether the given header is part of a module marked 'unavailable'.">ModuleMap::isHeaderInUnavailableModule</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *Header)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> HeadersMap::const_iterator Known = Headers.find(Header);</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">if</span> (Known != Headers.end()) {</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<KnownHeader>::const_iterator</a></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> I = Known->second.begin(),</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> E = Known->second.end();</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> I != E; ++I) {</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="keywordflow">if</span> (I->isAvailable())</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> }</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *Dir = Header-><a class="code" href="classclang_1_1FileEntry.html#a93533898e5cfd56df70289244f623fd6" title="Return the directory the file lives in.">getDir</a>();</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const DirectoryEntry *, 2></a> SkippedDirs;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> StringRef DirName = Dir-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>();</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment">// Keep walking up the directory hierarchy, looking for a directory with</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment">// an umbrella header.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="keywordflow">do</span> { </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> llvm::DenseMap<const DirectoryEntry *, Module *>::const_iterator KnownDir</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> = UmbrellaDirs.find(Dir);</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">if</span> (KnownDir != UmbrellaDirs.end()) {</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Found = KnownDir->second;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keywordflow">if</span> (!Found-><a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>())</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment">// Search up the module stack until we find a module with an umbrella</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment">// directory.</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *UmbrellaModule = Found;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keywordflow">while</span> (!UmbrellaModule-><a class="code" href="classclang_1_1Module.html#a2a142c05e037bb81a45fdf60c236cea7" title="Retrieve the directory for which this module serves as the umbrella.">getUmbrellaDir</a>() && UmbrellaModule-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>)</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> UmbrellaModule = UmbrellaModule-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <a class="code" href="mm__malloc_8h.html#a682140772a1d7d2744289e6abb2ad2ff">if</a> (UmbrellaModule-><a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c" title="Whether we should infer submodules for this module based on the headers.">InferSubmodules</a>) {</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = SkippedDirs.size(); I != 0; --I) {</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment">// Find or create the module that corresponds to this directory name.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<32></a> NameBuf;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> StringRef Name = <a class="code" href="ModuleMap_8cpp.html#a7a52c9b4721ce779ea587ea2d4d6c802" title=""Sanitize" a filename so that it can be used as an identifier.">sanitizeFilenameAsIdentifier</a>(</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> llvm::sys::path::stem(SkippedDirs[I-1]->getName()),</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> NameBuf);</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> Found = <a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(Name, Found);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keywordflow">if</span> (!Found)</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="keywordflow">if</span> (!Found-><a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>())</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> }</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="comment">// Infer a submodule with the same name as this header file.</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<32></a> NameBuf;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> StringRef Name = <a class="code" href="ModuleMap_8cpp.html#a7a52c9b4721ce779ea587ea2d4d6c802" title=""Sanitize" a filename so that it can be used as an identifier.">sanitizeFilenameAsIdentifier</a>(</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> llvm::sys::path::stem(Header-><a class="code" href="classclang_1_1FileEntry.html#a94ddac74f217c35e19420dd6c419e25f">getName</a>()),</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> NameBuf);</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> Found = <a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(Name, Found);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keywordflow">if</span> (!Found)</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> }</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keywordflow">return</span> !Found-><a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>();</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> }</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> SkippedDirs.push_back(Dir);</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">// Retrieve our parent path.</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> DirName = llvm::sys::path::parent_path(DirName);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="keywordflow">if</span> (DirName.empty())</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keywordflow">break</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"> 375</span> <span class="comment">// Resolve the parent path to a directory entry.</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> Dir = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(DirName);</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> } <span class="keywordflow">while</span> (Dir);</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> }</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div>
+<div class="line"><a name="l00382"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#af4c8a3d331c1f6f1e046e7f87adc7973"> 382</a></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#af4c8a3d331c1f6f1e046e7f87adc7973" title="Retrieve a module with the given name.">ModuleMap::findModule</a>(StringRef Name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> llvm::StringMap<Module *>::const_iterator Known = Modules.find(Name);</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keywordflow">if</span> (Known != Modules.end())</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">return</span> Known->getValue();</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> }</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a4227573c64ca68ac5f24f27de1f57b49"> 390</a></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#a4227573c64ca68ac5f24f27de1f57b49" title="Retrieve a module with the given name using lexical name lookup, starting at the given context...">ModuleMap::lookupModuleUnqualified</a>(StringRef Name,</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Context)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="keywordflow">for</span>(; <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>; Context = Context-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>) {</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Sub = <a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(Name, Context))</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="keywordflow">return</span> Sub;</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> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleMap.html#af4c8a3d331c1f6f1e046e7f87adc7973" title="Retrieve a module with the given name.">findModule</a>(Name);</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> }</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0"> 400</a></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">ModuleMap::lookupModuleQualified</a>(StringRef Name, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Context)<span class="keyword"> const</span>{</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keywordflow">if</span> (!Context)</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleMap.html#af4c8a3d331c1f6f1e046e7f87adc7973" title="Retrieve a module with the given name.">findModule</a>(Name);</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keywordflow">return</span> Context-><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="l00405"></a><span class="lineno"> 405</span> }</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> std::pair<Module *, bool> </div>
+<div class="line"><a name="l00408"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a115a5b7b114346aaa534995084fc3ac0"> 408</a></span> <a class="code" href="classclang_1_1ModuleMap.html#a115a5b7b114346aaa534995084fc3ac0" title="Find a new module or submodule, or create it if it does not already exist.">ModuleMap::findOrCreateModule</a>(StringRef Name, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Parent, <span class="keywordtype">bool</span> IsFramework,</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="keywordtype">bool</span> IsExplicit) {</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="comment">// Try to find an existing module with this name.</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Sub = <a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(Name, Parent))</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keywordflow">return</span> std::make_pair(Sub, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="comment">// Create a new module with this name.</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Result = <span class="keyword">new</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a>(Name, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(), Parent, IsFramework, </div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> IsExplicit);</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="keywordflow">if</span> (LangOpts.<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a> == Name) {</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <a class="code" href="classclang_1_1ModuleMap.html#a7a5b8df4ab18c5ed78cde851e2842e4d">SourceModule</a> = Result;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <a class="code" href="classclang_1_1ModuleMap.html#a2920cbcf5d7d15a5dc08cd142b839fe0">SourceModuleName</a> = Name;</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> <span class="keywordflow">if</span> (!Parent) {</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> Modules[Name] = Result;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keywordflow">if</span> (!LangOpts.<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a>.empty() && !CompilingModule &&</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> Name == LangOpts.<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a>) {</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> CompilingModule = Result;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> }</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> }</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">return</span> std::make_pair(Result, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> }</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a328854f497c38e79b5b1e291d572dec9"> 431</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#a328854f497c38e79b5b1e291d572dec9" title="Determine whether we can infer a framework module a framework with the given name in the given...">ModuleMap::canInferFrameworkModule</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *ParentDir,</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> StringRef Name, <span class="keywordtype">bool</span> &IsSystem)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="comment">// Check whether we have already looked into the parent directory</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="comment">// for a module map.</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> llvm::DenseMap<const DirectoryEntry *, InferredDirectory>::const_iterator</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> inferred = InferredDirectories.find(ParentDir);</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="keywordflow">if</span> (inferred == InferredDirectories.end())</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keywordflow">if</span> (!inferred->second.InferModules)</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="comment">// We're allowed to infer for this directory, but make sure it's okay</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment">// to infer this particular module.</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keywordtype">bool</span> canInfer = std::find(inferred->second.ExcludedModules.begin(),</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> inferred->second.ExcludedModules.end(),</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> Name) == inferred->second.ExcludedModules.end();</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keywordflow">if</span> (canInfer && inferred->second.InferSystemModules)</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> IsSystem = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keywordflow">return</span> canInfer;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> }</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment"></span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment">/// \brief For a framework module, infer the framework against which we</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">/// should link.</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"><a class="code" href="ModuleMap_8cpp.html#aaaa3666b8e1c7ea6a29c2da064eb8c48"> 457</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="ModuleMap_8cpp.html#aaaa3666b8e1c7ea6a29c2da064eb8c48" title="For a framework module, infer the framework against which we should link.">inferFrameworkLink</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *FrameworkDir,</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</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="l00459"></a><span class="lineno"> 459</span> assert(Mod-><a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a> && <span class="stringliteral">"Can only infer linking for framework modules"</span>);</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> assert(!Mod-><a class="code" href="classclang_1_1Module.html#a869c5857f419f0372777d6921c989e46" title="Determine whether this module is a subframework of another framework.">isSubFramework</a>() &&</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="stringliteral">"Can only infer linking for top-level frameworks"</span>);</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> LibName;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> LibName += FrameworkDir-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>();</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> llvm::sys::path::append(LibName, Mod-><a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</a>);</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keywordflow">if</span> (FileMgr.<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(LibName)) {</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> Mod-><a class="code" href="classclang_1_1Module.html#a59f744ae0f6907785614508d01a5cd59" title="The set of libraries or frameworks to link against when an entity from this module is used...">LinkLibraries</a>.push_back(<a class="code" href="structclang_1_1Module_1_1LinkLibrary.html" title="A library or framework to link against when an entity from this module is used.">Module::LinkLibrary</a>(Mod-><a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</a>,</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="comment">/*IsFramework=*/</span><span class="keyword">true</span>));</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> }</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> }</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *</div>
+<div class="line"><a name="l00473"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#aa6a0fbdfb7431809f16fd273f84da5b6"> 473</a></span> <a class="code" href="classclang_1_1ModuleMap.html#aa6a0fbdfb7431809f16fd273f84da5b6" title="Infer the contents of a framework module map from the given framework directory.">ModuleMap::inferFrameworkModule</a>(StringRef ModuleName,</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *FrameworkDir,</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="keywordtype">bool</span> IsSystem,</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Parent) {</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="comment">// Check whether we've already found this module.</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod = <a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(ModuleName, Parent))</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">return</span> Mod;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <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 = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>();</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="comment">// If the framework has a parent path from which we're allowed to infer</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="comment">// a framework module, do so.</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keywordflow">if</span> (!Parent) {</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="comment">// Determine whether we're allowed to infer a module map.</span></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> <span class="comment">// Note: as an egregious but useful hack we use the real path here, because</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="comment">// we might be looking at an embedded framework that symlinks out to a</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment">// top-level framework, and we need to infer as if we were naming the</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment">// top-level framework.</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> StringRef FrameworkDirName</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#aefc9a0b6440701f04541eb6e74447bb2" title="Retrieve the canonical name for a given directory.">getCanonicalName</a>(FrameworkDir);</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keywordtype">bool</span> canInfer = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="keywordflow">if</span> (llvm::sys::path::has_parent_path(FrameworkDirName)) {</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="comment">// Figure out the parent path.</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> StringRef Parent = llvm::sys::path::parent_path(FrameworkDirName);</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *ParentDir = FileMgr.<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(Parent)) {</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="comment">// Check whether we have already looked into the parent directory</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="comment">// for a module map.</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> llvm::DenseMap<const DirectoryEntry *, InferredDirectory>::const_iterator</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> inferred = InferredDirectories.find(ParentDir);</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="keywordflow">if</span> (inferred == InferredDirectories.end()) {</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment">// We haven't looked here before. Load a module map, if there is</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment">// one.</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> ModMapPath = Parent;</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> llvm::sys::path::append(ModMapPath, <span class="stringliteral">"module.map"</span>);</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</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> *ModMapFile = FileMgr.<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(ModMapPath)) {</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <a class="code" href="classclang_1_1ModuleMap.html#aa693079e31854e7297157e751ff6b7fd" title="Parse the given module map file, and record any modules we encounter.">parseModuleMapFile</a>(ModMapFile, IsSystem);</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> inferred = InferredDirectories.find(ParentDir);</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> }</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keywordflow">if</span> (inferred == InferredDirectories.end())</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> inferred = InferredDirectories.insert(</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> std::make_pair(ParentDir, InferredDirectory())).first;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> }</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="keywordflow">if</span> (inferred->second.InferModules) {</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="comment">// We're allowed to infer for this directory, but make sure it's okay</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="comment">// to infer this particular module.</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> StringRef Name = llvm::sys::path::stem(FrameworkDirName);</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> canInfer = std::find(inferred->second.ExcludedModules.begin(),</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> inferred->second.ExcludedModules.end(),</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> Name) == inferred->second.ExcludedModules.end();</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> (inferred->second.InferSystemModules)</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> IsSystem = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> }</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> }</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> }</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="comment">// If we're not allowed to infer a framework module, don't.</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="keywordflow">if</span> (!canInfer)</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> }</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="comment">// Look for an umbrella header.</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> UmbrellaName = StringRef(FrameworkDir-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>());</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> llvm::sys::path::append(UmbrellaName, <span class="stringliteral">"Headers"</span>, ModuleName + <span class="stringliteral">".h"</span>);</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *UmbrellaHeader = FileMgr.<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(UmbrellaName);</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> <span class="comment">// FIXME: If there's no umbrella header, we could probably scan the</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment">// framework to load *everything*. But, it's not clear that this is a good</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="comment">// idea.</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">if</span> (!UmbrellaHeader)</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Result = <span class="keyword">new</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a>(ModuleName, <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>(), Parent,</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="comment">/*IsFramework=*/</span><span class="keyword">true</span>, <span class="comment">/*IsExplicit=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">if</span> (LangOpts.<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a> == ModuleName) {</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <a class="code" href="classclang_1_1ModuleMap.html#a7a5b8df4ab18c5ed78cde851e2842e4d">SourceModule</a> = Result;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <a class="code" href="classclang_1_1ModuleMap.html#a2920cbcf5d7d15a5dc08cd142b839fe0">SourceModuleName</a> = ModuleName;</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> }</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="keywordflow">if</span> (IsSystem)</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> Result-><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> = IsSystem;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">if</span> (!Parent)</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> Modules[ModuleName] = Result;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="comment">// umbrella header "umbrella-header-name"</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> Result-><a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a> = UmbrellaHeader;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> Headers[UmbrellaHeader].push_back(<a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">KnownHeader</a>(Result, <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca50b6dee47a2d5b1f50f46dc46e4c96aa" title="This header is normally included in the module.">NormalHeader</a>));</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> UmbrellaDirs[UmbrellaHeader-><a class="code" href="classclang_1_1FileEntry.html#a93533898e5cfd56df70289244f623fd6" title="Return the directory the file lives in.">getDir</a>()] = Result;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="comment">// export *</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> Result-><a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>.push_back(<a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a>(0, <span class="keyword">true</span>));</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="comment">// module * { export * }</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> Result-><a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c" title="Whether we should infer submodules for this module based on the headers.">InferSubmodules</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> Result-><a class="code" href="classclang_1_1Module.html#aab3a3e63b2c07e737f21296484abbcf9" title="Whether, when inferring submodules, the inferr submodules should export all modules they import (e...">InferExportWildcard</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="comment">// Look for subframeworks.</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> llvm::error_code EC;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> SubframeworksDirName</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> = StringRef(FrameworkDir-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>());</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> llvm::sys::path::append(SubframeworksDirName, <span class="stringliteral">"Frameworks"</span>);</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> llvm::sys::path::native(SubframeworksDirName);</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="keywordflow">for</span> (llvm::sys::fs::directory_iterator </div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> Dir(SubframeworksDirName.str(), EC), DirEnd;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> Dir != DirEnd && !EC; Dir.increment(EC)) {</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">if</span> (!StringRef(Dir->path()).endswith(<span class="stringliteral">".framework"</span>))</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keywordflow">continue</span>;</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> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *SubframeworkDir</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> = FileMgr.<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(Dir->path())) {</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="comment">// Note: as an egregious but useful hack, we use the real path here and</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="comment">// check whether it is actually a subdirectory of the parent directory.</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment">// This will not be the case if the 'subframework' is actually a symlink</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="comment">// out to a top-level framework.</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> StringRef SubframeworkDirName = FileMgr.<a class="code" href="classclang_1_1FileManager.html#aefc9a0b6440701f04541eb6e74447bb2" title="Retrieve the canonical name for a given directory.">getCanonicalName</a>(SubframeworkDir);</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="keywordtype">bool</span> FoundParent = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="comment">// Get the parent directory name.</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> SubframeworkDirName</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> = llvm::sys::path::parent_path(SubframeworkDirName);</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">if</span> (SubframeworkDirName.empty())</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="keywordflow">break</span>;</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> <span class="keywordflow">if</span> (FileMgr.<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(SubframeworkDirName) == FrameworkDir) {</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> FoundParent = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> }</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> </div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="keywordflow">if</span> (!FoundParent)</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="comment">// FIXME: Do we want to warn about subframeworks without umbrella headers?</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<32></a> NameBuf;</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <a class="code" href="classclang_1_1ModuleMap.html#aa6a0fbdfb7431809f16fd273f84da5b6" title="Infer the contents of a framework module map from the given framework directory.">inferFrameworkModule</a>(<a class="code" href="ModuleMap_8cpp.html#a7a52c9b4721ce779ea587ea2d4d6c802" title=""Sanitize" a filename so that it can be used as an identifier.">sanitizeFilenameAsIdentifier</a>(</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> llvm::sys::path::stem(Dir->path()), NameBuf),</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> SubframeworkDir, IsSystem, Result);</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> </div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="comment">// If the module is a top-level framework, automatically link against the</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="comment">// framework.</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">if</span> (!Result-><a class="code" href="classclang_1_1Module.html#a869c5857f419f0372777d6921c989e46" title="Determine whether this module is a subframework of another framework.">isSubFramework</a>()) {</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <a class="code" href="ModuleMap_8cpp.html#aaaa3666b8e1c7ea6a29c2da064eb8c48" title="For a framework module, infer the framework against which we should link.">inferFrameworkLink</a>(Result, FrameworkDir, FileMgr);</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> }</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="keywordflow">return</span> Result;</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"><a class="code" href="classclang_1_1ModuleMap.html#a4e5eb634a8ba4425d545d84b6b28156d"> 627</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a4e5eb634a8ba4425d545d84b6b28156d" title="Sets the umbrella header of the given module to the given header.">ModuleMap::setUmbrellaHeader</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *UmbrellaHeader){</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> Headers[UmbrellaHeader].push_back(<a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">KnownHeader</a>(Mod, <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca50b6dee47a2d5b1f50f46dc46e4c96aa" title="This header is normally included in the module.">NormalHeader</a>));</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> Mod-><a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a> = UmbrellaHeader;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> UmbrellaDirs[UmbrellaHeader-><a class="code" href="classclang_1_1FileEntry.html#a93533898e5cfd56df70289244f623fd6" title="Return the directory the file lives in.">getDir</a>()] = Mod;</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> }</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> </div>
+<div class="line"><a name="l00633"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a5cc71eb848ebea391b1a075496f2f7ee"> 633</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a5cc71eb848ebea391b1a075496f2f7ee" title="Sets the umbrella directory of the given module to the given directory.">ModuleMap::setUmbrellaDir</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *UmbrellaDir) {</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> Mod-><a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a> = UmbrellaDir;</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> UmbrellaDirs[UmbrellaDir] = Mod;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> }</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div>
+<div class="line"><a name="l00638"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a36df90fd8a0f51e6b762938002ec038d"> 638</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a36df90fd8a0f51e6b762938002ec038d" title="Adds this header to the given module.">ModuleMap::addHeader</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *Header,</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8dec" title="Describes the role of a module header.">ModuleHeaderRole</a> Role) {</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">if</span> (Role == <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca29ca8d089c3fd646d54e611219d0d877" title="This header is explicitly excluded from the module.">ExcludedHeader</a>) {</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> Mod-><a class="code" href="classclang_1_1Module.html#a0fb319704fd02cce3cb3d7bd88a21c51" title="The headers that are explicitly excluded from this module.">ExcludedHeaders</a>.push_back(Header);</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">if</span> (Role == <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca0500e1f1c1ee8f9e6c76c993aa48b0d4" title="This header is included but private.">PrivateHeader</a>)</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> Mod-><a class="code" href="classclang_1_1Module.html#a03cc716919c98f60df2b1e2ed346f8bb" title="The headers that are private to this module.">PrivateHeaders</a>.push_back(Header);</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> Mod-><a class="code" href="classclang_1_1Module.html#abb4d0264cc1709091f4d2337ec17b832" title="The headers that are part of this module.">NormalHeaders</a>.push_back(Header);</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keywordtype">bool</span> isCompilingModuleHeader = Mod-><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>() == CompilingModule;</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a1325cd90bd38752e2547da2147db8e09" title="Mark the specified file as part of a module.">MarkFileModuleHeader</a>(Header, Role, isCompilingModuleHeader);</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> }</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> Headers[Header].push_back(<a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">KnownHeader</a>(Mod, Role));</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> }</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *</div>
+<div class="line"><a name="l00654"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#aa287c482ce0aac99831c2e2746b29612"> 654</a></span> <a class="code" href="classclang_1_1ModuleMap.html#aa287c482ce0aac99831c2e2746b29612" title="Retrieve the module map file containing the definition of the given module.">ModuleMap::getContainingModuleMapFile</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">if</span> (Module-><a class="code" href="classclang_1_1Module.html#a2710db72196e0e353a27cdc2b5f54fb9" title="The location of the module definition.">DefinitionLoc</a>.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>())</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> </div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="keywordflow">return</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Module-><a class="code" href="classclang_1_1Module.html#a2710db72196e0e353a27cdc2b5f54fb9" title="The location of the module definition.">DefinitionLoc</a>));</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> }</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div>
+<div class="line"><a name="l00662"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a26b885e43a6f5268a02cd4d09efbf5ad"> 662</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a26b885e43a6f5268a02cd4d09efbf5ad" title="Dump the contents of the module map, for debugging purposes.">ModuleMap::dump</a>() {</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> llvm::errs() << <span class="stringliteral">"Modules:"</span>;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="keywordflow">for</span> (llvm::StringMap<Module *>::iterator M = Modules.begin(), </div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> MEnd = Modules.end(); </div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> M != MEnd; ++M)</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> M->getValue()->print(llvm::errs(), 2);</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> llvm::errs() << <span class="stringliteral">"Headers:"</span>;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keywordflow">for</span> (HeadersMap::iterator H = Headers.begin(), HEnd = Headers.end();</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> H != HEnd; ++H) {</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> llvm::errs() << <span class="stringliteral">" \""</span> << H->first->getName() << <span class="stringliteral">"\" -> "</span>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<KnownHeader>::const_iterator</a> I = H->second.begin(),</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> E = H->second.end();</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> I != E; ++I) {</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">if</span> (I != H->second.begin())</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> llvm::errs() << <span class="stringliteral">","</span>;</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> llvm::errs() << I->getModule()->getFullModuleName();</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> }</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> llvm::errs() << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> }</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> }</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div>
+<div class="line"><a name="l00684"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a03d91ee91e3d302d32885c4d790b3915"> 684</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#a03d91ee91e3d302d32885c4d790b3915" title="Resolve all of the unresolved exports in the given module.">ModuleMap::resolveExports</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keywordtype">bool</span> Complain) {</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="keywordtype">bool</span> HadError = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Mod-><a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a> Export = resolveExport(Mod, Mod-><a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>[I], </div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> Complain);</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="keywordflow">if</span> (Export.getPointer() || Export.getInt())</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> Mod-><a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>.push_back(Export);</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> }</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> Mod-><a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>.clear();</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="keywordflow">return</span> HadError;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> }</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
+<div class="line"><a name="l00698"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#aff262a15ac7933edd463953d969e4f6b"> 698</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#aff262a15ac7933edd463953d969e4f6b" title="Resolve all of the unresolved uses in the given module.">ModuleMap::resolveUses</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keywordtype">bool</span> Complain) {</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="keywordtype">bool</span> HadError = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Mod-><a class="code" href="classclang_1_1Module.html#a807bbdc20e2fb8ae2007a6a76244bc49" title="The set of use declarations that have yet to be resolved.">UnresolvedDirectUses</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *DirectUse =</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> resolveModuleId(Mod-><a class="code" href="classclang_1_1Module.html#a807bbdc20e2fb8ae2007a6a76244bc49" title="The set of use declarations that have yet to be resolved.">UnresolvedDirectUses</a>[I], Mod, Complain);</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="keywordflow">if</span> (DirectUse)</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> Mod-><a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e" title="The directly used modules.">DirectUses</a>.push_back(DirectUse);</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> }</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> Mod-><a class="code" href="classclang_1_1Module.html#a807bbdc20e2fb8ae2007a6a76244bc49" title="The set of use declarations that have yet to be resolved.">UnresolvedDirectUses</a>.clear();</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="keywordflow">return</span> HadError;</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"><a class="code" href="classclang_1_1ModuleMap.html#a635593eb7f27a7297eb22afacd08d104"> 712</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#a635593eb7f27a7297eb22afacd08d104" title="Resolve all of the unresolved conflicts in the given module.">ModuleMap::resolveConflicts</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keywordtype">bool</span> Complain) {</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="keywordtype">bool</span> HadError = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Mod-><a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *OtherMod = resolveModuleId(Mod-><a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>[I].Id,</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> Mod, Complain);</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="keywordflow">if</span> (!OtherMod) {</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> }</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <a class="code" href="structclang_1_1Module_1_1Conflict.html" title="A conflict between two modules.">Module::Conflict</a> Conflict;</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> Conflict.<a class="code" href="structclang_1_1Module_1_1Conflict.html#a166e4ba42a196c12037803ac020cf83b" title="The module that this module conflicts with.">Other</a> = OtherMod;</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> Conflict.<a class="code" href="structclang_1_1Module_1_1Conflict.html#a36f68dc996f06770984dfa803d00737c" title="The message provided to the user when there is a conflict.">Message</a> = Mod-><a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>[I].Message;</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> Mod-><a class="code" href="classclang_1_1Module.html#afe7d527c3baed85720bfd21f822e2783" title="The list of conflicts.">Conflicts</a>.push_back(Conflict);</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> }</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> Mod-><a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>.clear();</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="keywordflow">return</span> HadError;</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"><a class="code" href="classclang_1_1ModuleMap.html#a5fbb3347d523ee9b3f32c71ef4322102"> 731</a></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#a5fbb3347d523ee9b3f32c71ef4322102" title="Infers the (sub)module based on the given source location and source manager.">ModuleMap::inferModuleFromLocation</a>(<a class="code" href="classclang_1_1FullSourceLoc.html" title="A SourceLocation and its associated SourceManager.">FullSourceLoc</a> Loc) {</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>())</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="keywordflow">return</span> 0;</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> <span class="comment">// Use the expansion location to determine which module we're in.</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <a class="code" href="classclang_1_1FullSourceLoc.html" title="A SourceLocation and its associated SourceManager.">FullSourceLoc</a> ExpansionLoc = Loc.<a class="code" href="classclang_1_1FullSourceLoc.html#ae2e4a9834721a370db2f3c76de37f3ae">getExpansionLoc</a>();</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="keywordflow">if</span> (!ExpansionLoc.<a class="code" href="classclang_1_1SourceLocation.html#a8317aa72ddfd4e2221603217927070cc">isFileID</a>())</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="keywordflow">return</span> 0; </div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> </div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &SrcMgr = Loc.<a class="code" href="classclang_1_1FullSourceLoc.html#a90ff11b13596b28b7b4a89f6c6c22a91">getManager</a>();</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</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> ExpansionFileID = ExpansionLoc.<a class="code" href="classclang_1_1FullSourceLoc.html#ae2220ce56fa3fe83cc0d9530ae4e1d56">getFileID</a>();</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> </div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="keywordflow">while</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> *ExpansionFile</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> = SrcMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(ExpansionFileID)) {</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="comment">// Find the module that owns this header (if any).</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod = <a class="code" href="classclang_1_1ModuleMap.html#a127dbf10d2e3134aedb7d7c60cf23cc9" title="Retrieve the module that owns the given header file, if any.">findModuleForHeader</a>(ExpansionFile).<a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a7b62eee1d73659d194a543a83256c9f5" title="Retrieve the module the header is stored in.">getModule</a>())</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="keywordflow">return</span> Mod;</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> <span class="comment">// No module owns this header, so look up the inclusion chain to see if</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="comment">// any included header has an associated module.</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</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> IncludeLoc = SrcMgr.<a class="code" href="classclang_1_1SourceManager.html#a995d8d7843d3e79ecd3f1fbb6c0596a6" title="Returns the include location if FID is a #include'd file otherwise it returns an invalid location...">getIncludeLoc</a>(ExpansionFileID);</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="keywordflow">if</span> (IncludeLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>())</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="keywordflow">return</span> 0;</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> ExpansionFileID = SrcMgr.<a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(IncludeLoc);</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> }</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> </div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> }</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="comment">//----------------------------------------------------------------------------//</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="comment">// Module map file parser</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="comment">//----------------------------------------------------------------------------//</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>clang {<span class="comment"></span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="comment"> /// \brief A token in a module map file.</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html"> 768</a></span> <span class="comment"></span> <span class="keyword">struct </span><a class="code" href="structclang_1_1MMToken.html" title="A token in a module map file.">MMToken</a> {</div>
+<div class="line"><a name="l00769"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4b"> 769</a></span> <span class="keyword">enum</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4b">TokenKind</a> {</div>
+<div class="line"><a name="l00770"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bab52c81bbf584f8f4e30e4b9ee7524cb8"> 770</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bab52c81bbf584f8f4e30e4b9ee7524cb8">Comma</a>,</div>
+<div class="line"><a name="l00771"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba58c15e1805176ec3a5b3368952f783fc"> 771</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba58c15e1805176ec3a5b3368952f783fc">ConfigMacros</a>,</div>
+<div class="line"><a name="l00772"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7ecdc054dc41aa967d19a5a1a4b399b0"> 772</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7ecdc054dc41aa967d19a5a1a4b399b0">Conflict</a>,</div>
+<div class="line"><a name="l00773"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacfdbeb69247d08426216ed8dfcc12be7"> 773</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacfdbeb69247d08426216ed8dfcc12be7">EndOfFile</a>,</div>
+<div class="line"><a name="l00774"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb"> 774</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">HeaderKeyword</a>,</div>
+<div class="line"><a name="l00775"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40"> 775</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">Identifier</a>,</div>
+<div class="line"><a name="l00776"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baf194071d48a941dfaf44b135cd764077"> 776</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baf194071d48a941dfaf44b135cd764077">Exclaim</a>,</div>
+<div class="line"><a name="l00777"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82"> 777</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82">ExcludeKeyword</a>,</div>
+<div class="line"><a name="l00778"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba30d5cd45e7a706ec9628035ecb8b4ce4"> 778</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba30d5cd45e7a706ec9628035ecb8b4ce4">ExplicitKeyword</a>,</div>
+<div class="line"><a name="l00779"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba3094a0eb1b6ff41cdd855823e5672b4d"> 779</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba3094a0eb1b6ff41cdd855823e5672b4d">ExportKeyword</a>,</div>
+<div class="line"><a name="l00780"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4babc6b2954698c90a9bd71ce5c7714d104"> 780</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4babc6b2954698c90a9bd71ce5c7714d104">ExternKeyword</a>,</div>
+<div class="line"><a name="l00781"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7330c30ccee851f9c7e918080ff97b5c"> 781</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7330c30ccee851f9c7e918080ff97b5c">FrameworkKeyword</a>,</div>
+<div class="line"><a name="l00782"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba543309e2a3f1a625e43b12e2e415f177"> 782</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba543309e2a3f1a625e43b12e2e415f177">LinkKeyword</a>,</div>
+<div class="line"><a name="l00783"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb"> 783</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb">ModuleKeyword</a>,</div>
+<div class="line"><a name="l00784"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacf233185402ee25983d523fb04268ec4"> 784</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacf233185402ee25983d523fb04268ec4">Period</a>,</div>
+<div class="line"><a name="l00785"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba2d2ba141f0c7eb34e91c8f86b6a30ee4"> 785</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba2d2ba141f0c7eb34e91c8f86b6a30ee4">PrivateKeyword</a>,</div>
+<div class="line"><a name="l00786"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4"> 786</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">UmbrellaKeyword</a>,</div>
+<div class="line"><a name="l00787"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae438908b5113391d88f8518f6227b0d3"> 787</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae438908b5113391d88f8518f6227b0d3">UseKeyword</a>,</div>
+<div class="line"><a name="l00788"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba49abad35fc18db8438fbfab6c2095418"> 788</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba49abad35fc18db8438fbfab6c2095418">RequiresKeyword</a>,</div>
+<div class="line"><a name="l00789"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac79841bc46ac28e7d9b64bb940da6993"> 789</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac79841bc46ac28e7d9b64bb940da6993">Star</a>,</div>
+<div class="line"><a name="l00790"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e"> 790</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e">StringLiteral</a>,</div>
+<div class="line"><a name="l00791"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6ec369f84e9b91c9d16f74efbd1c2c36"> 791</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6ec369f84e9b91c9d16f74efbd1c2c36">LBrace</a>,</div>
+<div class="line"><a name="l00792"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4"> 792</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">RBrace</a>,</div>
+<div class="line"><a name="l00793"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba73a9c8c5b7ad4861c5152d5c2bed29bb"> 793</a></span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba73a9c8c5b7ad4861c5152d5c2bed29bb">LSquare</a>,</div>
+<div class="line"><a name="l00794"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37"> 794</a></span> RSquare</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> } <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div>
+<div class="line"><a name="l00797"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#a320bd87fc7617018fc065c41da0b1f55"> 797</a></span> <span class="keywordtype">unsigned</span> <a class="code" href="structclang_1_1MMToken.html#a320bd87fc7617018fc065c41da0b1f55">Location</a>;</div>
+<div class="line"><a name="l00798"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#aa6a035e1ee0a9e418fe3e02f59cdfc75"> 798</a></span> <span class="keywordtype">unsigned</span> <a class="code" href="structclang_1_1MMToken.html#aa6a035e1ee0a9e418fe3e02f59cdfc75">StringLength</a>;</div>
+<div class="line"><a name="l00799"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#a9f9d75ced8777b7c1ea5b4a31d2db5b7"> 799</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structclang_1_1MMToken.html#a9f9d75ced8777b7c1ea5b4a31d2db5b7">StringData</a>;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div>
+<div class="line"><a name="l00801"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ae23d44d840a7cdfe382c9f4c76f8476f"> 801</a></span> <span class="keywordtype">void</span> <a class="code" href="structclang_1_1MMToken.html#ae23d44d840a7cdfe382c9f4c76f8476f">clear</a>() {</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = EndOfFile;</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> Location = 0;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> StringLength = 0;</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> StringData = 0;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> }</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> </div>
+<div class="line"><a name="l00808"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625"> 808</a></span> <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4b">TokenKind</a> K)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> == K; }</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> </div>
+<div class="line"><a name="l00810"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61"> 810</a></span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceLocation.html#af6ffb91a339feae6d6a5101c533f1494" title="Turn a raw encoding of a SourceLocation object into a real SourceLocation.">SourceLocation::getFromRawEncoding</a>(Location);</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> </div>
+<div class="line"><a name="l00814"></a><span class="lineno"><a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42"> 814</a></span> StringRef <a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="keywordflow">return</span> StringRef(StringData, StringLength);</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> }</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> };</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="comment"></span></div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> <span class="comment"> /// \brief The set of attributes that can be attached to a module.</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno"><a class="code" href="structclang_1_1Attributes.html"> 820</a></span> <span class="comment"></span> <span class="keyword">struct </span><a class="code" href="structclang_1_1Attributes.html" title="The set of attributes that can be attached to a module.">Attributes</a> {</div>
+<div class="line"><a name="l00821"></a><span class="lineno"><a class="code" href="structclang_1_1Attributes.html#ab672ec7ade49d52687a42820b23de111"> 821</a></span> <a class="code" href="structclang_1_1Attributes.html#ab672ec7ade49d52687a42820b23de111">Attributes</a>() : IsSystem(), IsExhaustive() { }</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="comment"></span></div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="comment"> /// \brief Whether this is a system module.</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno"><a class="code" href="structclang_1_1Attributes.html#a7036c98ab1887091dfe30dca3ad12a71"> 824</a></span> <span class="comment"></span> <span class="keywordtype">unsigned</span> IsSystem : 1;</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="comment"></span></div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="comment"> /// \brief Whether this is an exhaustive set of configuration macros.</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno"><a class="code" href="structclang_1_1Attributes.html#a635dfbbcfd97606f95aa4b636a1c543b"> 827</a></span> <span class="comment"></span> <span class="keywordtype">unsigned</span> IsExhaustive : 1;</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> };</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> </div>
+<div class="line"><a name="l00831"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMapParser.html"> 831</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ModuleMapParser.html">ModuleMapParser</a> {</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <a class="code" href="classclang_1_1Lexer.html">Lexer</a> &L;</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</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="l00834"></a><span class="lineno"> 834</span> <span class="comment"></span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="comment"> /// \brief Default target information, used only for string literal</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="comment"> /// parsing.</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> *Target;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</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="l00840"></a><span class="lineno"> 840</span> <a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> &<a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a>;</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="comment"></span></div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="comment"> /// \brief The directory that this module map resides in.</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *Directory;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="comment"></span></div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="comment"> /// \brief The directory containing Clang-supplied headers.</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *BuiltinIncludeDir;</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="comment"></span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="comment"> /// \brief Whether this module map is in a system header directory.</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="comment"></span> <span class="keywordtype">bool</span> IsSystem;</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="comment"></span></div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="comment"> /// \brief Whether an error occurred.</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="comment"></span> <span class="keywordtype">bool</span> HadError;</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <span class="comment"></span></div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="comment"> /// \brief Stores string data for the various string literals referenced</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="comment"> /// during parsing.</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="comment"></span> llvm::BumpPtrAllocator StringData;</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="comment"></span></div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="comment"> /// \brief The current token.</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="comment"></span> <a class="code" href="structclang_1_1MMToken.html" title="A token in a module map file.">MMToken</a> Tok;</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="comment"></span></div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="comment"> /// \brief The active module.</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *ActiveModule;</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="comment"></span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="comment"> /// \brief Consume the current token and return its location.</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="comment"></span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> consumeToken();</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="comment"></span></div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="comment"> /// \brief Skip tokens until we reach the a token with the given kind</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="comment"> /// (or the end of the file).</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="comment"></span> <span class="keywordtype">void</span> skipUntil(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4b">MMToken::TokenKind</a> K);</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> </div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::pair<std::string, SourceLocation></a>, 2> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a>;</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="keywordtype">bool</span> parseModuleId(ModuleId &Id);</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="keywordtype">void</span> parseModuleDecl();</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="keywordtype">void</span> parseExternModuleDecl();</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <span class="keywordtype">void</span> parseRequiresDecl();</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="keywordtype">void</span> parseHeaderDecl(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4b">clang::MMToken::TokenKind</a>,</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</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> LeadingLoc);</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="keywordtype">void</span> parseUmbrellaDirDecl(<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> UmbrellaLoc);</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="keywordtype">void</span> parseExportDecl();</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <span class="keywordtype">void</span> parseUseDecl();</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <span class="keywordtype">void</span> parseLinkDecl();</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="keywordtype">void</span> parseConfigMacros();</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="keywordtype">void</span> parseConflict();</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="keywordtype">void</span> parseInferredModuleDecl(<span class="keywordtype">bool</span> Framework, <span class="keywordtype">bool</span> Explicit);</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="keywordtype">bool</span> parseOptionalAttributes(<a class="code" href="structclang_1_1Attributes.html" title="The set of attributes that can be attached to a module.">Attributes</a> &Attrs);</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *getOverriddenHeaderSearchDir();</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> </div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00890"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMapParser.html#a02ccffd762fc559a32e5fd8b9ded05e2"> 890</a></span> <span class="keyword">explicit</span> <a class="code" href="classclang_1_1ModuleMapParser.html">ModuleMapParser</a>(<a class="code" href="classclang_1_1Lexer.html">Lexer</a> &L, <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="l00891"></a><span class="lineno"> 891</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> *Target,</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</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="l00893"></a><span class="lineno"> 893</span> <a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> &<a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a>,</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *Directory,</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *BuiltinIncludeDir,</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="keywordtype">bool</span> IsSystem)</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> : L(L), SourceMgr(SourceMgr), Target(Target), Diags(Diags), Map(Map), </div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> Directory(Directory), BuiltinIncludeDir(BuiltinIncludeDir),</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> IsSystem(IsSystem), HadError(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), ActiveModule(0)</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> Tok.clear();</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> consumeToken();</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> </div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="keywordtype">bool</span> parseModuleMapFile();</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> };</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> }</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> </div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</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> ModuleMapParser::consumeToken() {</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> retry:</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</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> Result = Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>();</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> Tok.<a class="code" href="structclang_1_1MMToken.html#ae23d44d840a7cdfe382c9f4c76f8476f">clear</a>();</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> </div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <a class="code" href="classclang_1_1Token.html">Token</a> LToken;</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> L.<a class="code" href="classclang_1_1Lexer.html#a16e11a597200d643efbc21fb8e657567">LexFromRawLexer</a>(LToken);</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a320bd87fc7617018fc065c41da0b1f55">Location</a> = LToken.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>().<a class="code" href="classclang_1_1SourceLocation.html#a3b9eca838127c4105fd77fd0d3b5962a" title="When a SourceLocation itself cannot be used, this returns an (opaque) 32-bit integer encoding for it...">getRawEncoding</a>();</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="keywordflow">switch</span> (LToken.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <span class="keywordflow">case</span> tok::raw_identifier:</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a9f9d75ced8777b7c1ea5b4a31d2db5b7">StringData</a> = LToken.<a class="code" href="classclang_1_1Token.html#a63f951b781b7c3cca10b5edd2adfaf11">getRawIdentifierData</a>();</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> Tok.<a class="code" href="structclang_1_1MMToken.html#aa6a035e1ee0a9e418fe3e02f59cdfc75">StringLength</a> = LToken.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>();</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = llvm::StringSwitch<MMToken::TokenKind>(Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>())</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> .Case(<span class="stringliteral">"config_macros"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba58c15e1805176ec3a5b3368952f783fc">MMToken::ConfigMacros</a>)</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> .Case(<span class="stringliteral">"conflict"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7ecdc054dc41aa967d19a5a1a4b399b0">MMToken::Conflict</a>)</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> .Case(<span class="stringliteral">"exclude"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82">MMToken::ExcludeKeyword</a>)</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> .Case(<span class="stringliteral">"explicit"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba30d5cd45e7a706ec9628035ecb8b4ce4">MMToken::ExplicitKeyword</a>)</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> .Case(<span class="stringliteral">"export"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba3094a0eb1b6ff41cdd855823e5672b4d">MMToken::ExportKeyword</a>)</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> .Case(<span class="stringliteral">"extern"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4babc6b2954698c90a9bd71ce5c7714d104">MMToken::ExternKeyword</a>)</div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> .Case(<span class="stringliteral">"framework"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7330c30ccee851f9c7e918080ff97b5c">MMToken::FrameworkKeyword</a>)</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> .Case(<span class="stringliteral">"header"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>)</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> .Case(<span class="stringliteral">"link"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba543309e2a3f1a625e43b12e2e415f177">MMToken::LinkKeyword</a>)</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> .Case(<span class="stringliteral">"module"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb">MMToken::ModuleKeyword</a>)</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> .Case(<span class="stringliteral">"private"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba2d2ba141f0c7eb34e91c8f86b6a30ee4">MMToken::PrivateKeyword</a>)</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> .Case(<span class="stringliteral">"requires"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba49abad35fc18db8438fbfab6c2095418">MMToken::RequiresKeyword</a>)</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> .Case(<span class="stringliteral">"umbrella"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a>)</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> .Case(<span class="stringliteral">"use"</span>, <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae438908b5113391d88f8518f6227b0d3">MMToken::UseKeyword</a>)</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> .Default(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>);</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="keywordflow">case</span> tok::comma:</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bab52c81bbf584f8f4e30e4b9ee7524cb8">MMToken::Comma</a>;</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> </div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>:</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacfdbeb69247d08426216ed8dfcc12be7">MMToken::EndOfFile</a>;</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> </div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="keywordflow">case</span> tok::l_brace:</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6ec369f84e9b91c9d16f74efbd1c2c36">MMToken::LBrace</a>;</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> </div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <span class="keywordflow">case</span> tok::l_square:</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba73a9c8c5b7ad4861c5152d5c2bed29bb">MMToken::LSquare</a>;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> </div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="keywordflow">case</span> tok::period:</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacf233185402ee25983d523fb04268ec4">MMToken::Period</a>;</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> </div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> <span class="keywordflow">case</span> tok::r_brace:</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>;</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> </div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> <span class="keywordflow">case</span> tok::r_square:</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37">MMToken::RSquare</a>;</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> </div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="keywordflow">case</span> tok::star:</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac79841bc46ac28e7d9b64bb940da6993">MMToken::Star</a>;</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> </div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="keywordflow">case</span> tok::exclaim:</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baf194071d48a941dfaf44b135cd764077">MMToken::Exclaim</a>;</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="keywordflow">case</span> tok::string_literal: {</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="keywordflow">if</span> (LToken.<a class="code" href="classclang_1_1Token.html#a0a2223e4b9c06ce5b651ec8bd830dedd" title="Return true if this token is a string or character literal which has a ud-suffix.">hasUDSuffix</a>()) {</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(LToken.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), diag::err_invalid_string_udl);</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="keywordflow">goto</span> retry;</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> }</div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> </div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <span class="comment">// Parse the string literal.</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</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="l00984"></a><span class="lineno"> 984</span> <a class="code" href="classclang_1_1StringLiteralParser.html">StringLiteralParser</a> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>(<oken, 1, SourceMgr, LangOpts, *Target);</div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>.hadError)</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="keywordflow">goto</span> retry;</div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> </div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="comment">// Copy the string literal into our string data allocator.</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="keywordtype">unsigned</span> Length = <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>.GetStringLength();</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="keywordtype">char</span> *<a class="code" href="SemaOverload_8cpp.html#ace72bb49951cc617e98070bbdbd0db33">Saved</a> = StringData.Allocate<<span class="keywordtype">char</span>>(Length + 1);</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> memcpy(Saved, <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>.GetString().data(), Length);</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> Saved[Length] = 0;</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> </div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> <span class="comment">// Form the token.</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a> = <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e">MMToken::StringLiteral</a>;</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a9f9d75ced8777b7c1ea5b4a31d2db5b7">StringData</a> = <a class="code" href="SemaOverload_8cpp.html#ace72bb49951cc617e98070bbdbd0db33">Saved</a>;</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> Tok.<a class="code" href="structclang_1_1MMToken.html#aa6a035e1ee0a9e418fe3e02f59cdfc75">StringLength</a> = Length;</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> }</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="keywordflow">case</span> tok::comment:</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="keywordflow">goto</span> retry;</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="keywordflow">default</span>:</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(LToken.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), diag::err_mmap_unknown_token);</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="keywordflow">goto</span> retry;</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> }</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> }</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> </div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="keywordtype">void</span> ModuleMapParser::skipUntil(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4b">MMToken::TokenKind</a> K) {</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="keywordtype">unsigned</span> braceDepth = 0;</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="keywordtype">unsigned</span> squareDepth = 0;</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="keywordflow">switch</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a>) {</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacfdbeb69247d08426216ed8dfcc12be7">MMToken::EndOfFile</a>:</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> </div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6ec369f84e9b91c9d16f74efbd1c2c36">MMToken::LBrace</a>:</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(K) && braceDepth == 0 && squareDepth == 0)</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> </div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> ++braceDepth;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> </div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba73a9c8c5b7ad4861c5152d5c2bed29bb">MMToken::LSquare</a>:</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(K) && braceDepth == 0 && squareDepth == 0)</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="keywordflow">return</span>;</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> ++squareDepth;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="keywordflow">break</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="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>:</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="keywordflow">if</span> (braceDepth > 0)</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> --braceDepth;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(K))</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="keywordflow">break</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="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37">MMToken::RSquare</a>:</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="keywordflow">if</span> (squareDepth > 0)</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> --squareDepth;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(K))</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="keywordflow">if</span> (braceDepth == 0 && squareDepth == 0 && Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(K))</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> }</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> consumeToken();</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> }</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment"></span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">/// \brief Parse a module-id.</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">/// module-id:</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">/// identifier</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment">/// identifier '.' module-id</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">/// \returns true if an error occurred, false otherwise.</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment"></span><span class="keywordtype">bool</span> ModuleMapParser::parseModuleId(<a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> &Id) {</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> Id.clear();</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>)) {</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> Id.push_back(std::make_pair(Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>(), Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>()));</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> consumeToken();</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_module_name);</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="keywordflow">return</span> <span class="keyword">true</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="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacf233185402ee25983d523fb04268ec4">MMToken::Period</a>))</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> </div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> consumeToken();</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> </div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="keywordflow">return</span> <span class="keyword">false</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> </div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="keyword">namespace </span>{<span class="comment"></span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment"> /// \brief Enumerates the known attributes.</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"><a class="code" href="ModuleMap_8cpp.html#ae35a381d74eb7257124045a96ae47ade"> 1088</a></span> <span class="comment"></span> <span class="keyword">enum</span> <a class="code" href="ModuleMap_8cpp.html#ae35a381d74eb7257124045a96ae47ade" title="Enumerates the known attributes.">AttributeKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment"> /// \brief An unknown attribute.</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment"></span> AT_unknown,<span class="comment"></span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment"> /// \brief The 'system' attribute.</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment"></span> AT_system,<span class="comment"></span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment"> /// \brief The 'exhaustive' attribute.</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment"></span> AT_exhaustive</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> };</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> }</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment"></span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">/// \brief Parse a module declaration.</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment">/// module-declaration:</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">/// 'extern' 'module' module-id string-literal</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment">/// 'explicit'[opt] 'framework'[opt] 'module' module-id attributes[opt] </span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="comment">/// { module-member* }</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="comment">/// module-member:</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment">/// requires-declaration</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment">/// header-declaration</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment">/// submodule-declaration</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment">/// export-declaration</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">/// link-declaration</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">/// submodule-declaration:</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment">/// module-declaration</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">/// inferred-submodule-declaration</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseModuleDecl() {</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba30d5cd45e7a706ec9628035ecb8b4ce4">MMToken::ExplicitKeyword</a>) || Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb">MMToken::ModuleKeyword</a>) ||</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7330c30ccee851f9c7e918080ff97b5c">MMToken::FrameworkKeyword</a>) || Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4babc6b2954698c90a9bd71ce5c7714d104">MMToken::ExternKeyword</a>));</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4babc6b2954698c90a9bd71ce5c7714d104">MMToken::ExternKeyword</a>)) {</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> parseExternModuleDecl();</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> }</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> </div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment">// Parse 'explicit' or 'framework' keyword, if present.</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</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> ExplicitLoc;</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="keywordtype">bool</span> Explicit = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="keywordtype">bool</span> Framework = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> </div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment">// Parse 'explicit' keyword, if present.</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba30d5cd45e7a706ec9628035ecb8b4ce4">MMToken::ExplicitKeyword</a>)) {</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> ExplicitLoc = consumeToken();</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> Explicit = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> }</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> </div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment">// Parse 'framework' keyword, if present.</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7330c30ccee851f9c7e918080ff97b5c">MMToken::FrameworkKeyword</a>)) {</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> consumeToken();</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> Framework = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> } </div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> </div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment">// Parse 'module' keyword.</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb">MMToken::ModuleKeyword</a>)) {</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_module);</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> consumeToken();</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="keywordflow">return</span>;</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> consumeToken(); <span class="comment">// 'module' keyword</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> </div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment">// If we have a wildcard for the module name, this is an inferred submodule.</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment">// Parse it. </span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac79841bc46ac28e7d9b64bb940da6993">MMToken::Star</a>))</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="keywordflow">return</span> parseInferredModuleDecl(Framework, Explicit);</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> <span class="comment">// Parse the module name.</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> Id;</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="keywordflow">if</span> (parseModuleId(Id)) {</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> }</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> </div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="keywordflow">if</span> (ActiveModule) {</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="keywordflow">if</span> (Id.size() > 1) {</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Id.front().second, diag::err_mmap_nested_submodule_id)</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(Id.front().second, Id.back().second);</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> </div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> }</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Id.size() == 1 && Explicit) {</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment">// Top-level modules can't be explicit.</span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ExplicitLoc, diag::err_mmap_explicit_top_level);</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> Explicit = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> ExplicitLoc = <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="l01174"></a><span class="lineno"> 1174</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> }</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *PreviousActiveModule = ActiveModule; </div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="keywordflow">if</span> (Id.size() > 1) {</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment">// This module map defines a submodule. Go find the module of which it</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment">// is a submodule.</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> ActiveModule = 0;</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Id.size() - 1; I != N; ++I) {</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Next = Map.<a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(Id[I].first, ActiveModule)) {</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> ActiveModule = Next;</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> }</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> </div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="keywordflow">if</span> (ActiveModule) {</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Id[I].second, diag::err_mmap_missing_module_qualified)</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> << Id[I].first << ActiveModule-><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="l01191"></a><span class="lineno"> 1191</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Id[I].second, diag::err_mmap_expected_module_name);</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> }</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="keywordflow">return</span>;</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> </div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> StringRef ModuleName = Id.back().first;</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</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 = Id.back().second;</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> </div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment">// Parse the optional attribute list.</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <a class="code" href="structclang_1_1Attributes.html" title="The set of attributes that can be attached to a module.">Attributes</a> Attrs;</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> parseOptionalAttributes(Attrs);</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="comment">// Parse the opening brace.</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6ec369f84e9b91c9d16f74efbd1c2c36">MMToken::LBrace</a>)) {</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_lbrace)</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> << ModuleName;</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> } </div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</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> LBraceLoc = consumeToken();</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> </div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment">// Determine whether this (sub)module has already been defined.</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Existing = Map.<a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(ModuleName, ActiveModule)) {</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="keywordflow">if</span> (Existing->DefinitionLoc.isInvalid() && !ActiveModule) {</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment">// Skip the module definition.</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> skipUntil(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>);</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>))</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> consumeToken();</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_rbrace);</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(LBraceLoc, diag::note_mmap_lbrace_match);</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> HadError = <span class="keyword">true</span>; </div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> }</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="keywordflow">return</span>;</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> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ModuleNameLoc, diag::err_mmap_module_redefinition)</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> << ModuleName;</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Existing->DefinitionLoc, diag::note_mmap_prev_definition);</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> </div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment">// Skip the module definition.</span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> skipUntil(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>);</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>))</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> consumeToken();</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> </div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> }</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> </div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment">// Start defining this module.</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> ActiveModule = Map.<a class="code" href="classclang_1_1ModuleMap.html#a115a5b7b114346aaa534995084fc3ac0" title="Find a new module or submodule, or create it if it does not already exist.">findOrCreateModule</a>(ModuleName, ActiveModule, Framework,</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> Explicit).first;</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a2710db72196e0e353a27cdc2b5f54fb9" title="The location of the module definition.">DefinitionLoc</a> = ModuleNameLoc;</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="keywordflow">if</span> (Attrs.<a class="code" href="structclang_1_1Attributes.html#a7036c98ab1887091dfe30dca3ad12a71" title="Whether this is a system module.">IsSystem</a> || IsSystem)</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a505c7530ef3ac10e3f8c207e5722a158" title="Whether this is a "system" module (which assumes that all headers in it are system headers)...">IsSystem</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> </div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="keywordtype">bool</span> Done = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="keywordflow">switch</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a>) {</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacfdbeb69247d08426216ed8dfcc12be7">MMToken::EndOfFile</a>:</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>:</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> Done = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="keywordflow">break</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="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba58c15e1805176ec3a5b3368952f783fc">MMToken::ConfigMacros</a>:</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> parseConfigMacros();</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> </div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7ecdc054dc41aa967d19a5a1a4b399b0">MMToken::Conflict</a>:</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> parseConflict();</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> </div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba30d5cd45e7a706ec9628035ecb8b4ce4">MMToken::ExplicitKeyword</a>:</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4babc6b2954698c90a9bd71ce5c7714d104">MMToken::ExternKeyword</a>:</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7330c30ccee851f9c7e918080ff97b5c">MMToken::FrameworkKeyword</a>:</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb">MMToken::ModuleKeyword</a>:</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> parseModuleDecl();</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> </div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba3094a0eb1b6ff41cdd855823e5672b4d">MMToken::ExportKeyword</a>:</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> parseExportDecl();</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> </div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae438908b5113391d88f8518f6227b0d3">MMToken::UseKeyword</a>:</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> parseUseDecl();</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> </div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba49abad35fc18db8438fbfab6c2095418">MMToken::RequiresKeyword</a>:</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> parseRequiresDecl();</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> </div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a>: {</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</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> UmbrellaLoc = consumeToken();</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>))</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> parseHeaderDecl(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a>, UmbrellaLoc);</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> parseUmbrellaDirDecl(UmbrellaLoc);</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> }</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> </div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82">MMToken::ExcludeKeyword</a>: {</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</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> ExcludeLoc = consumeToken();</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>)) {</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> parseHeaderDecl(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82">MMToken::ExcludeKeyword</a>, ExcludeLoc);</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_header)</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> << <span class="stringliteral">"exclude"</span>;</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">break</span>;</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> }</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> </div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba2d2ba141f0c7eb34e91c8f86b6a30ee4">MMToken::PrivateKeyword</a>: {</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</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> PrivateLoc = consumeToken();</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>)) {</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> parseHeaderDecl(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba2d2ba141f0c7eb34e91c8f86b6a30ee4">MMToken::PrivateKeyword</a>, PrivateLoc);</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_header)</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> << <span class="stringliteral">"private"</span>;</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> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> }</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> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>:</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> parseHeaderDecl(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>());</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> </div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba543309e2a3f1a625e43b12e2e415f177">MMToken::LinkKeyword</a>:</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> parseLinkDecl();</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> </div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_member);</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> consumeToken();</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="keywordflow">break</span>; </div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> }</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> } <span class="keywordflow">while</span> (!Done);</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> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>))</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> consumeToken();</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_rbrace);</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(LBraceLoc, diag::note_mmap_lbrace_match);</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</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> <span class="comment">// If the active module is a top-level framework, and there are no link</span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment">// libraries, automatically link against the framework.</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="keywordflow">if</span> (ActiveModule-><a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a> && !ActiveModule-><a class="code" href="classclang_1_1Module.html#a869c5857f419f0372777d6921c989e46" title="Determine whether this module is a subframework of another framework.">isSubFramework</a>() &&</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a59f744ae0f6907785614508d01a5cd59" title="The set of libraries or frameworks to link against when an entity from this module is used...">LinkLibraries</a>.empty()) {</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <a class="code" href="ModuleMap_8cpp.html#aaaa3666b8e1c7ea6a29c2da064eb8c48" title="For a framework module, infer the framework against which we should link.">inferFrameworkLink</a>(ActiveModule, Directory, SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>());</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> }</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> </div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="comment">// We're done parsing this module. Pop back to the previous module.</span></div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> ActiveModule = PreviousActiveModule;</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> }</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment"></span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="comment">/// \brief Parse an extern module declaration.</span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="comment">/// extern module-declaration:</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="comment">/// 'extern' 'module' module-id string-literal</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseExternModuleDecl() {</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4babc6b2954698c90a9bd71ce5c7714d104">MMToken::ExternKeyword</a>));</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> consumeToken(); <span class="comment">// 'extern' keyword</span></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="comment">// Parse 'module' keyword.</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb">MMToken::ModuleKeyword</a>)) {</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_module);</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> consumeToken();</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> }</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> consumeToken(); <span class="comment">// 'module' keyword</span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> </div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment">// Parse the module name.</span></div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> Id;</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="keywordflow">if</span> (parseModuleId(Id)) {</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> }</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> </div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="comment">// Parse the referenced module map file name.</span></div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e">MMToken::StringLiteral</a>)) {</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_mmap_file);</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> }</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> std::string FileName = Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>();</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> consumeToken(); <span class="comment">// filename</span></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> StringRef FileNameRef = FileName;</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> ModuleMapFileName;</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="keywordflow">if</span> (llvm::sys::path::is_relative(FileNameRef)) {</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> ModuleMapFileName += Directory-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>();</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> llvm::sys::path::append(ModuleMapFileName, FileName);</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> FileNameRef = ModuleMapFileName.str();</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> }</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <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> *File = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(FileNameRef))</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> Map.<a class="code" href="classclang_1_1ModuleMap.html#aa693079e31854e7297157e751ff6b7fd" title="Parse the given module map file, and record any modules we encounter.">parseModuleMapFile</a>(File, <span class="comment">/*IsSystem=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> }</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment"></span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment">/// \brief Parse a requires declaration.</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment">/// requires-declaration:</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment">/// 'requires' feature-list</span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="comment">/// feature-list:</span></div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="comment">/// feature ',' feature-list</span></div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> <span class="comment">/// feature</span></div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> <span class="comment">/// feature:</span></div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> <span class="comment">/// '!'[opt] identifier</span></div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseRequiresDecl() {</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba49abad35fc18db8438fbfab6c2095418">MMToken::RequiresKeyword</a>));</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">// Parse 'requires' keyword.</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> consumeToken();</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> </div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> <span class="comment">// Parse the feature-list.</span></div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="keywordtype">bool</span> RequiredState = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baf194071d48a941dfaf44b135cd764077">MMToken::Exclaim</a>)) {</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> RequiredState = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> consumeToken();</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> }</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> </div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>)) {</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_feature);</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> }</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> </div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="comment">// Consume the feature name.</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> std::string Feature = Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>();</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> consumeToken();</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> </div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> <span class="comment">// Add this feature.</span></div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a007a11f18b75c2258a04ed53bbcda2af" title="Add the given feature requirement to the list of features required by this module.">addRequirement</a>(Feature, RequiredState,</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> Map.LangOpts, *Map.Target);</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> </div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bab52c81bbf584f8f4e30e4b9ee7524cb8">MMToken::Comma</a>))</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> </div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <span class="comment">// Consume the comma.</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> consumeToken();</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> }</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="comment"></span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="comment">/// \brief Append to \p Paths the set of paths needed to get to the </span></div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="comment">/// subframework in which the given module lives.</span></div>
+<div class="line"><a name="l01443"></a><span class="lineno"><a class="code" href="ModuleMap_8cpp.html#aaf9af217f7106e1e2f06139adb3dcc2a"> 1443</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="ModuleMap_8cpp.html#aaf9af217f7106e1e2f06139adb3dcc2a" title="Append to Paths the set of paths needed to get to the subframework in which the given module lives...">appendSubframeworkPaths</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod,</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<char></a> &Path) {</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="comment">// Collect the framework names from the given module to the top-level module.</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<StringRef, 2></a> Paths;</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <span class="keywordflow">for</span> (; Mod; Mod = Mod-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>) {</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="keywordflow">if</span> (Mod-><a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a>)</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> Paths.push_back(Mod-><a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</a>);</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> }</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> </div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="keywordflow">if</span> (Paths.empty())</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> </div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <span class="comment">// Add Frameworks/Name.framework for each subframework.</span></div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = Paths.size() - 1; I != 0; --I)</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> llvm::sys::path::append(Path, <span class="stringliteral">"Frameworks"</span>, Paths[I-1] + <span class="stringliteral">".framework"</span>);</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> }</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="comment"></span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> <span class="comment">/// \brief Parse a header declaration.</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> <span class="comment">/// header-declaration:</span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="comment">/// 'umbrella'[opt] 'header' string-literal</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="comment">/// 'exclude'[opt] 'header' string-literal</span></div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseHeaderDecl(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4b">MMToken::TokenKind</a> LeadingToken,</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</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> LeadingLoc) {</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>));</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> consumeToken();</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> </div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> <span class="comment">// Parse the header name.</span></div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e">MMToken::StringLiteral</a>)) {</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_header) </div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> << <span class="stringliteral">"header"</span>;</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> }</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> std::string FileName = Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>();</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</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> FileNameLoc = consumeToken();</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> </div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> <span class="comment">// Check whether we already have an umbrella.</span></div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> <span class="keywordflow">if</span> (LeadingToken == <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a> && ActiveModule-><a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a>) {</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(FileNameLoc, diag::err_mmap_umbrella_clash)</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> << ActiveModule-><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="l01484"></a><span class="lineno"> 1484</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> }</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> </div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> <span class="comment">// Look for this file.</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</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 = 0;</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</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> *BuiltinFile = 0;</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> PathName;</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <span class="keywordflow">if</span> (llvm::sys::path::is_absolute(FileName)) {</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> PathName = FileName;</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> File = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(PathName);</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *Dir = getOverriddenHeaderSearchDir()) {</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> PathName = Dir->getName();</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> llvm::sys::path::append(PathName, FileName);</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> File = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(PathName);</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> <span class="comment">// Search for the header file within the search directory.</span></div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> PathName = Directory-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>();</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> <span class="keywordtype">unsigned</span> PathLength = PathName.size();</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> </div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> <span class="keywordflow">if</span> (ActiveModule-><a class="code" href="classclang_1_1Module.html#acb0eb0ac4a5d242095c5f63488496cfe" title="Determine whether this module is a part of a framework, either because it is a framework module or be...">isPartOfFramework</a>()) {</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> <a class="code" href="ModuleMap_8cpp.html#aaf9af217f7106e1e2f06139adb3dcc2a" title="Append to Paths the set of paths needed to get to the subframework in which the given module lives...">appendSubframeworkPaths</a>(ActiveModule, PathName);</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> </div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> <span class="comment">// Check whether this file is in the public headers.</span></div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> llvm::sys::path::append(PathName, <span class="stringliteral">"Headers"</span>, FileName);</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> File = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(PathName);</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> </div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> <span class="keywordflow">if</span> (!File) {</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="comment">// Check whether this file is in the private headers.</span></div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> PathName.resize(PathLength);</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> llvm::sys::path::append(PathName, <span class="stringliteral">"PrivateHeaders"</span>, FileName);</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> File = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(PathName);</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> }</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="comment">// Lookup for normal headers.</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> llvm::sys::path::append(PathName, FileName);</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> File = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(PathName);</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> </div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment">// If this is a system module with a top-level header, this header</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="comment">// may have a counterpart (or replacement) in the set of headers</span></div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment">// supplied by Clang. Find that builtin header.</span></div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="keywordflow">if</span> (ActiveModule-><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> && LeadingToken != <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a> &&</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> BuiltinIncludeDir && BuiltinIncludeDir != Directory &&</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <a class="code" href="ModuleMap_8cpp.html#a6b6fef8d0ee38234c3fff3e6f328474d" title="Determine whether the given file name is the name of a builtin header, supplied by Clang to replace...">isBuiltinHeader</a>(FileName)) {</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> BuiltinPathName(BuiltinIncludeDir-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>());</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> llvm::sys::path::append(BuiltinPathName, FileName);</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> BuiltinFile = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(BuiltinPathName);</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> </div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> <span class="comment">// If Clang supplies this header but the underlying system does not,</span></div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> <span class="comment">// just silently swap in our builtin version. Otherwise, we'll end</span></div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> <span class="comment">// up adding both (later).</span></div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> <span class="keywordflow">if</span> (!File && BuiltinFile) {</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> File = BuiltinFile;</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> BuiltinFile = 0;</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> }</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> }</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> }</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> }</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> </div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> <span class="comment">// FIXME: We shouldn't be eagerly stat'ing every file named in a module map.</span></div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> <span class="comment">// Come up with a lazy way to do this.</span></div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> <span class="keywordflow">if</span> (File) {</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="keywordflow">if</span> (LeadingToken == <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a>) {</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *UmbrellaDir = File-><a class="code" href="classclang_1_1FileEntry.html#a93533898e5cfd56df70289244f623fd6" title="Return the directory the file lives in.">getDir</a>();</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *UmbrellaModule = Map.UmbrellaDirs[UmbrellaDir]) {</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(LeadingLoc, diag::err_mmap_umbrella_clash)</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> << UmbrellaModule->getFullModuleName();</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> <span class="comment">// Record this umbrella header.</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> Map.<a class="code" href="classclang_1_1ModuleMap.html#a4e5eb634a8ba4425d545d84b6b28156d" title="Sets the umbrella header of the given module to the given header.">setUmbrellaHeader</a>(ActiveModule, File);</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> }</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> <span class="comment">// Record this header.</span></div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8dec" title="Describes the role of a module header.">ModuleMap::ModuleHeaderRole</a> Role = <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca50b6dee47a2d5b1f50f46dc46e4c96aa" title="This header is normally included in the module.">ModuleMap::NormalHeader</a>;</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> <span class="keywordflow">if</span> (LeadingToken == <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82">MMToken::ExcludeKeyword</a>)</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> Role = <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca29ca8d089c3fd646d54e611219d0d877" title="This header is explicitly excluded from the module.">ModuleMap::ExcludedHeader</a>;</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LeadingToken == <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba2d2ba141f0c7eb34e91c8f86b6a30ee4">MMToken::PrivateKeyword</a>)</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> Role = <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca0500e1f1c1ee8f9e6c76c993aa48b0d4" title="This header is included but private.">ModuleMap::PrivateHeader</a>;</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> assert(LeadingToken == <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>);</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> </div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span> Map.<a class="code" href="classclang_1_1ModuleMap.html#a36df90fd8a0f51e6b762938002ec038d" title="Adds this header to the given module.">addHeader</a>(ActiveModule, File, Role);</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> </div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> <span class="comment">// If there is a builtin counterpart to this file, add it now.</span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> <span class="keywordflow">if</span> (BuiltinFile)</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> Map.<a class="code" href="classclang_1_1ModuleMap.html#a36df90fd8a0f51e6b762938002ec038d" title="Adds this header to the given module.">addHeader</a>(ActiveModule, BuiltinFile, Role);</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> }</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LeadingToken != <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82">MMToken::ExcludeKeyword</a>) {</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> <span class="comment">// Ignore excluded header files. They're optional anyway.</span></div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> </div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(FileNameLoc, diag::err_mmap_header_not_found)</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> << (LeadingToken == <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a>) << FileName;</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> }</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> }</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> <span class="comment"></span></div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> <span class="comment">/// \brief Parse an umbrella directory declaration.</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="comment">/// umbrella-dir-declaration:</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> <span class="comment">/// umbrella string-literal</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseUmbrellaDirDecl(<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> UmbrellaLoc) {</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> <span class="comment">// Parse the directory name.</span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e">MMToken::StringLiteral</a>)) {</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_header) </div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> << <span class="stringliteral">"umbrella"</span>;</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> }</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> </div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> std::string DirName = Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>();</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</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> DirNameLoc = consumeToken();</div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> </div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="comment">// Check whether we already have an umbrella.</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> <span class="keywordflow">if</span> (ActiveModule-><a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a>) {</div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(DirNameLoc, diag::err_mmap_umbrella_clash)</div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> << ActiveModule-><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="l01601"></a><span class="lineno"> 1601</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> }</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> </div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="comment">// Look for this file.</span></div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *Dir = 0;</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="keywordflow">if</span> (llvm::sys::path::is_absolute(DirName))</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> Dir = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(DirName);</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> PathName;</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> PathName = Directory-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>();</div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> llvm::sys::path::append(PathName, DirName);</div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> Dir = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(PathName);</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> }</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> </div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> <span class="keywordflow">if</span> (!Dir) {</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(DirNameLoc, diag::err_mmap_umbrella_dir_not_found)</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> << DirName;</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> }</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> </div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *OwningModule = Map.UmbrellaDirs[Dir]) {</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(UmbrellaLoc, diag::err_mmap_umbrella_clash)</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> << OwningModule->getFullModuleName();</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> } </div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> </div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> <span class="comment">// Record this umbrella directory.</span></div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> Map.<a class="code" href="classclang_1_1ModuleMap.html#a5cc71eb848ebea391b1a075496f2f7ee" title="Sets the umbrella directory of the given module to the given directory.">setUmbrellaDir</a>(ActiveModule, Dir);</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> }</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> <span class="comment"></span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> <span class="comment">/// \brief Parse a module export declaration.</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> <span class="comment">/// export-declaration:</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> <span class="comment">/// 'export' wildcard-module-id</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> <span class="comment">/// wildcard-module-id:</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="comment">/// identifier</span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> <span class="comment">/// '*'</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> <span class="comment">/// identifier '.' wildcard-module-id</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseExportDecl() {</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba3094a0eb1b6ff41cdd855823e5672b4d">MMToken::ExportKeyword</a>));</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</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> ExportLoc = consumeToken();</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> </div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="comment">// Parse the module-id with an optional wildcard at the end.</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> ParsedModuleId;</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> <span class="keywordtype">bool</span> Wildcard = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>)) {</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> ParsedModuleId.push_back(std::make_pair(Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>(), </div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>()));</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> consumeToken();</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> </div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacf233185402ee25983d523fb04268ec4">MMToken::Period</a>)) {</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> consumeToken();</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> } </div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> </div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> }</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> </div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="keywordflow">if</span>(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac79841bc46ac28e7d9b64bb940da6993">MMToken::Star</a>)) {</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> Wildcard = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> consumeToken();</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> }</div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> </div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_module_id);</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span> } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> </div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> <a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html" title="Describes an exported module that has not yet been resolved (perhaps because the module it refers to ...">Module::UnresolvedExportDecl</a> Unresolved = { </div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> ExportLoc, ParsedModuleId, Wildcard </div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> };</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>.push_back(Unresolved);</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> }</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="comment"></span></div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> <span class="comment">/// \brief Parse a module uses declaration.</span></div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="comment">/// uses-declaration:</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> <span class="comment">/// 'uses' wildcard-module-id</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseUseDecl() {</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae438908b5113391d88f8518f6227b0d3">MMToken::UseKeyword</a>));</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> consumeToken();</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="comment">// Parse the module-id.</span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> ParsedModuleId;</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> </div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>)) {</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> ParsedModuleId.push_back(</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> std::make_pair(Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>(), Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>()));</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> consumeToken();</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> </div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacf233185402ee25983d523fb04268ec4">MMToken::Period</a>)) {</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> consumeToken();</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> }</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> </div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> }</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> </div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_module_id);</div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> </div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a807bbdc20e2fb8ae2007a6a76244bc49" title="The set of use declarations that have yet to be resolved.">UnresolvedDirectUses</a>.push_back(ParsedModuleId);</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> }</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> <span class="comment"></span></div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <span class="comment">/// \brief Parse a link declaration.</span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment">/// module-declaration:</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="comment">/// 'link' 'framework'[opt] string-literal</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseLinkDecl() {</div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba543309e2a3f1a625e43b12e2e415f177">MMToken::LinkKeyword</a>));</div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</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> LinkLoc = consumeToken();</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> </div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> <span class="comment">// Parse the optional 'framework' keyword.</span></div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="keywordtype">bool</span> IsFramework = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7330c30ccee851f9c7e918080ff97b5c">MMToken::FrameworkKeyword</a>)) {</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> consumeToken();</div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> IsFramework = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> }</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> </div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> <span class="comment">// Parse the library name</span></div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e">MMToken::StringLiteral</a>)) {</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_library_name)</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> << IsFramework << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(LinkLoc);</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> }</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> </div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> std::string LibraryName = Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>();</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> consumeToken();</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a59f744ae0f6907785614508d01a5cd59" title="The set of libraries or frameworks to link against when an entity from this module is used...">LinkLibraries</a>.push_back(<a class="code" href="structclang_1_1Module_1_1LinkLibrary.html" title="A library or framework to link against when an entity from this module is used.">Module::LinkLibrary</a>(LibraryName,</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> IsFramework));</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> }</div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> <span class="comment"></span></div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="comment">/// \brief Parse a configuration macro declaration.</span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="comment">/// module-declaration:</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> <span class="comment">/// 'config_macros' attributes[opt] config-macro-list?</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="comment">/// config-macro-list:</span></div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="comment">/// identifier (',' identifier)?</span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseConfigMacros() {</div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba58c15e1805176ec3a5b3368952f783fc">MMToken::ConfigMacros</a>));</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</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> ConfigMacrosLoc = consumeToken();</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> </div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> <span class="comment">// Only top-level modules can have configuration macros.</span></div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> <span class="keywordflow">if</span> (ActiveModule-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>) {</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ConfigMacrosLoc, diag::err_mmap_config_macro_submodule);</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> }</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> </div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> <span class="comment">// Parse the optional attributes.</span></div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <a class="code" href="structclang_1_1Attributes.html" title="The set of attributes that can be attached to a module.">Attributes</a> Attrs;</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> parseOptionalAttributes(Attrs);</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="keywordflow">if</span> (Attrs.<a class="code" href="structclang_1_1Attributes.html#a635dfbbcfd97606f95aa4b636a1c543b" title="Whether this is an exhaustive set of configuration macros.">IsExhaustive</a> && !ActiveModule-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>) {</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a97a926961c5f156791faf98633970246" title="Whether the set of configuration macros is exhaustive.">ConfigMacrosExhaustive</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> }</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> </div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> <span class="comment">// If we don't have an identifier, we're done.</span></div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>))</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> </div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> <span class="comment">// Consume the first identifier.</span></div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <span class="keywordflow">if</span> (!ActiveModule-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>) {</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> ActiveModule-><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>.push_back(Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>().str());</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> }</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> consumeToken();</div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> </div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="comment">// If there's a comma, consume it.</span></div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bab52c81bbf584f8f4e30e4b9ee7524cb8">MMToken::Comma</a>))</div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> consumeToken();</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> </div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> <span class="comment">// We expect to see a macro name here.</span></div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>)) {</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_config_macro);</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> }</div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span> </div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> <span class="comment">// Consume the macro name.</span></div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> <span class="keywordflow">if</span> (!ActiveModule-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>) {</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> ActiveModule-><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>.push_back(Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>().str());</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> }</div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> consumeToken();</div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> }</div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> <span class="comment"></span></div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span> <span class="comment">/// \brief Format a module-id into a string.</span></div>
+<div class="line"><a name="l01796"></a><span class="lineno"><a class="code" href="ModuleMap_8cpp.html#abc9978556cc9900580d0367b3bc5fe65"> 1796</a></span> <span class="comment"></span><span class="keyword">static</span> std::string <a class="code" href="ModuleMap_8cpp.html#abc9978556cc9900580d0367b3bc5fe65" title="Format a module-id into a string.">formatModuleId</a>(<span class="keyword">const</span> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> &Id) {</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> std::string result;</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> {</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> llvm::raw_string_ostream OS(result);</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> </div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Id.size(); I != N; ++I) {</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> <span class="keywordflow">if</span> (I)</div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> OS << <span class="stringliteral">"."</span>;</div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> OS << Id[I].first;</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> }</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> }</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span> </div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> }</div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> <span class="comment"></span></div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> <span class="comment">/// \brief Parse a conflict declaration.</span></div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="comment">/// module-declaration:</span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <span class="comment">/// 'conflict' module-id ',' string-literal</span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseConflict() {</div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7ecdc054dc41aa967d19a5a1a4b399b0">MMToken::Conflict</a>));</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</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> ConflictLoc = consumeToken();</div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> <a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html" title="An unresolved conflict with another module.">Module::UnresolvedConflict</a> Conflict;</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> </div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> <span class="comment">// Parse the module-id.</span></div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> <span class="keywordflow">if</span> (parseModuleId(Conflict.<a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html#a632f3ed5dfa8f5daf18509050e18859b" title="The (unresolved) module id.">Id</a>))</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> </div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> <span class="comment">// Parse the ','.</span></div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bab52c81bbf584f8f4e30e4b9ee7524cb8">MMToken::Comma</a>)) {</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_conflicts_comma)</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ConflictLoc);</div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> }</div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> consumeToken();</div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> </div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="comment">// Parse the message.</span></div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e">MMToken::StringLiteral</a>)) {</div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_conflicts_message)</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span> << <a class="code" href="ModuleMap_8cpp.html#abc9978556cc9900580d0367b3bc5fe65" title="Format a module-id into a string.">formatModuleId</a>(Conflict.<a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html#a632f3ed5dfa8f5daf18509050e18859b" title="The (unresolved) module id.">Id</a>);</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> }</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> Conflict.<a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html#a363b8c33e8037a2ce8282d4ab29b7241" title="The message provided to the user when there is a conflict.">Message</a> = Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>().str();</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> consumeToken();</div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> </div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> <span class="comment">// Add this unresolved conflict.</span></div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>.push_back(Conflict);</div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span> }</div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span> <span class="comment"></span></div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> <span class="comment">/// \brief Parse an inferred module declaration (wildcard modules).</span></div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> <span class="comment">/// module-declaration:</span></div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span> <span class="comment">/// 'explicit'[opt] 'framework'[opt] 'module' * attributes[opt]</span></div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> <span class="comment">/// { inferred-module-member* }</span></div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span> <span class="comment">/// inferred-module-member:</span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span> <span class="comment">/// 'export' '*'</span></div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> <span class="comment">/// 'exclude' identifier</span></div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> <span class="comment"></span><span class="keywordtype">void</span> ModuleMapParser::parseInferredModuleDecl(<span class="keywordtype">bool</span> Framework, <span class="keywordtype">bool</span> Explicit) {</div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> assert(Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac79841bc46ac28e7d9b64bb940da6993">MMToken::Star</a>));</div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</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> StarLoc = consumeToken();</div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span> <span class="keywordtype">bool</span> Failed = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> </div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> <span class="comment">// Inferred modules must be submodules.</span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> <span class="keywordflow">if</span> (!ActiveModule && !Framework) {</div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(StarLoc, diag::err_mmap_top_level_inferred_submodule);</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> Failed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span> }</div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span> </div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> <span class="keywordflow">if</span> (ActiveModule) {</div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> <span class="comment">// Inferred modules must have umbrella directories.</span></div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span> <span class="keywordflow">if</span> (!Failed && !ActiveModule-><a class="code" href="classclang_1_1Module.html#a2a142c05e037bb81a45fdf60c236cea7" title="Retrieve the directory for which this module serves as the umbrella.">getUmbrellaDir</a>()) {</div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(StarLoc, diag::err_mmap_inferred_no_umbrella);</div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> Failed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> }</div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> </div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span> <span class="comment">// Check for redefinition of an inferred module.</span></div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> <span class="keywordflow">if</span> (!Failed && ActiveModule-><a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c" title="Whether we should infer submodules for this module based on the headers.">InferSubmodules</a>) {</div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(StarLoc, diag::err_mmap_inferred_redef);</div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> <span class="keywordflow">if</span> (ActiveModule-><a class="code" href="classclang_1_1Module.html#a16910d5312b19f955d1912fe6a34a20c" title="The location of the inferred submodule.">InferredSubmoduleLoc</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="l01876"></a><span class="lineno"> 1876</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(ActiveModule-><a class="code" href="classclang_1_1Module.html#a16910d5312b19f955d1912fe6a34a20c" title="The location of the inferred submodule.">InferredSubmoduleLoc</a>,</div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span> diag::note_mmap_prev_definition);</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> Failed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> }</div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> </div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> <span class="comment">// Check for the 'framework' keyword, which is not permitted here.</span></div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> <span class="keywordflow">if</span> (Framework) {</div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(StarLoc, diag::err_mmap_inferred_framework_submodule);</div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> Framework = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> }</div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Explicit) {</div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(StarLoc, diag::err_mmap_explicit_inferred_framework);</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span> Explicit = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span> }</div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> </div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> <span class="comment">// If there were any problems with this inferred submodule, skip its body.</span></div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span> <span class="keywordflow">if</span> (Failed) {</div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6ec369f84e9b91c9d16f74efbd1c2c36">MMToken::LBrace</a>)) {</div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> consumeToken();</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> skipUntil(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>);</div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>))</div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> consumeToken();</div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span> }</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span> }</div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> </div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> <span class="comment">// Parse optional attributes.</span></div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span> <a class="code" href="structclang_1_1Attributes.html" title="The set of attributes that can be attached to a module.">Attributes</a> Attrs;</div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span> parseOptionalAttributes(Attrs);</div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> </div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> <span class="keywordflow">if</span> (ActiveModule) {</div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> <span class="comment">// Note that we have an inferred submodule.</span></div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c" title="Whether we should infer submodules for this module based on the headers.">InferSubmodules</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#a16910d5312b19f955d1912fe6a34a20c" title="The location of the inferred submodule.">InferredSubmoduleLoc</a> = StarLoc;</div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#ae64ff7e3ba9cb2d5fa98f6b55c58d921" title="Whether, when inferring submodules, the inferred submodules should be explicit.">InferExplicitSubmodules</a> = Explicit;</div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> <span class="comment">// We'll be inferring framework modules for this directory.</span></div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> Map.InferredDirectories[Directory].InferModules = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> Map.InferredDirectories[Directory].InferSystemModules = Attrs.<a class="code" href="structclang_1_1Attributes.html#a7036c98ab1887091dfe30dca3ad12a71" title="Whether this is a system module.">IsSystem</a>;</div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> }</div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span> </div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span> <span class="comment">// Parse the opening brace.</span></div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6ec369f84e9b91c9d16f74efbd1c2c36">MMToken::LBrace</a>)) {</div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_lbrace_wildcard);</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> } </div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</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> LBraceLoc = consumeToken();</div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> </div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> <span class="comment">// Parse the body of the inferred submodule.</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> <span class="keywordtype">bool</span> Done = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span> <span class="keywordflow">switch</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a>) {</div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacfdbeb69247d08426216ed8dfcc12be7">MMToken::EndOfFile</a>:</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>:</div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> Done = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> </div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82">MMToken::ExcludeKeyword</a>: {</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> <span class="keywordflow">if</span> (ActiveModule) {</div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_inferred_member)</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> << (ActiveModule != 0);</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> consumeToken();</div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> }</div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> </div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> consumeToken();</div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>)) {</div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_missing_exclude_name);</div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> }</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> </div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> Map.InferredDirectories[Directory].ExcludedModules</div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> .push_back(Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>());</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> consumeToken();</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> }</div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> </div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba3094a0eb1b6ff41cdd855823e5672b4d">MMToken::ExportKeyword</a>:</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="keywordflow">if</span> (!ActiveModule) {</div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_inferred_member)</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> << (ActiveModule != 0);</div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> consumeToken();</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span> }</div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> </div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> consumeToken();</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac79841bc46ac28e7d9b64bb940da6993">MMToken::Star</a>)) </div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> ActiveModule-><a class="code" href="classclang_1_1Module.html#aab3a3e63b2c07e737f21296484abbcf9" title="Whether, when inferring submodules, the inferr submodules should export all modules they import (e...">InferExportWildcard</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), </div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> diag::err_mmap_expected_export_wildcard);</div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> consumeToken();</div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> </div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba30d5cd45e7a706ec9628035ecb8b4ce4">MMToken::ExplicitKeyword</a>:</div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb">MMToken::ModuleKeyword</a>:</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>:</div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba2d2ba141f0c7eb34e91c8f86b6a30ee4">MMToken::PrivateKeyword</a>:</div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a>:</div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_inferred_member)</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> << (ActiveModule != 0);</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> consumeToken();</div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> <span class="keywordflow">break</span>; </div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> }</div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> } <span class="keywordflow">while</span> (!Done);</div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> </div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>))</div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> consumeToken();</div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_rbrace);</div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(LBraceLoc, diag::note_mmap_lbrace_match);</div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> }</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> }</div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> <span class="comment"></span></div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> <span class="comment">/// \brief Parse optional attributes.</span></div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> <span class="comment">/// attributes:</span></div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> <span class="comment">/// attribute attributes</span></div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> <span class="comment">/// attribute</span></div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> <span class="comment">/// attribute:</span></div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> <span class="comment">/// [ identifier ]</span></div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span> <span class="comment">/// \param Attrs Will be filled in with the parsed attributes.</span></div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> <span class="comment">/// \returns true if an error occurred, false otherwise.</span></div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span> <span class="comment"></span><span class="keywordtype">bool</span> ModuleMapParser::parseOptionalAttributes(<a class="code" href="structclang_1_1Attributes.html" title="The set of attributes that can be attached to a module.">Attributes</a> &Attrs) {</div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span> <span class="keywordtype">bool</span> HadError = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> </div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> <span class="keywordflow">while</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba73a9c8c5b7ad4861c5152d5c2bed29bb">MMToken::LSquare</a>)) {</div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span> <span class="comment">// Consume the '['.</span></div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</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> LSquareLoc = consumeToken();</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> </div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> <span class="comment">// Check whether we have an attribute name here.</span></div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>)) {</div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_attribute);</div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> skipUntil(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37">MMToken::RSquare</a>);</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37">MMToken::RSquare</a>))</div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span> consumeToken();</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> }</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> </div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> <span class="comment">// Decode the attribute name.</span></div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span> <a class="code" href="ModuleMap_8cpp.html#ae35a381d74eb7257124045a96ae47ade" title="Enumerates the known attributes.">AttributeKind</a> Attribute</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> = llvm::StringSwitch<AttributeKind>(Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>())</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> .Case(<span class="stringliteral">"exhaustive"</span>, AT_exhaustive)</div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> .Case(<span class="stringliteral">"system"</span>, AT_system)</div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> .Default(AT_unknown);</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> <span class="keywordflow">switch</span> (Attribute) {</div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> <span class="keywordflow">case</span> AT_unknown:</div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::warn_mmap_unknown_attribute)</div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span> << Tok.<a class="code" href="structclang_1_1MMToken.html#ae8b9f863ea73a89a89a588c22e4baf42">getString</a>();</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> </div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> <span class="keywordflow">case</span> AT_system:</div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> Attrs.<a class="code" href="structclang_1_1Attributes.html#a7036c98ab1887091dfe30dca3ad12a71" title="Whether this is a system module.">IsSystem</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> </div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> <span class="keywordflow">case</span> AT_exhaustive:</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span> Attrs.<a class="code" href="structclang_1_1Attributes.html#a635dfbbcfd97606f95aa4b636a1c543b" title="Whether this is an exhaustive set of configuration macros.">IsExhaustive</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> }</div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> consumeToken();</div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> </div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> <span class="comment">// Consume the ']'.</span></div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37">MMToken::RSquare</a>)) {</div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_rsquare);</div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(LSquareLoc, diag::note_mmap_lsquare_match);</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> skipUntil(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37">MMToken::RSquare</a>);</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span> }</div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span> </div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a77bf300833b85f35504455bf59119625">is</a>(<a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37">MMToken::RSquare</a>))</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> consumeToken();</div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> }</div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> </div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span> <span class="keywordflow">return</span> HadError;</div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> }</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> <span class="comment"></span></div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="comment">/// \brief If there is a specific header search directory due the presence</span></div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> <span class="comment">/// of an umbrella directory, retrieve that directory. Otherwise, returns null.</span></div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="comment"></span><span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *ModuleMapParser::getOverriddenHeaderSearchDir() {</div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod = ActiveModule; Mod; Mod = Mod-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>) {</div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> <span class="comment">// If we have an umbrella directory, use that.</span></div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> <span class="keywordflow">if</span> (Mod-><a class="code" href="classclang_1_1Module.html#a5d5a3bef3811c442f39ecd596ca9e7df" title="Determine whether this module has an umbrella directory that is not based on an umbrella header...">hasUmbrellaDir</a>())</div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> <span class="keywordflow">return</span> Mod-><a class="code" href="classclang_1_1Module.html#a2a142c05e037bb81a45fdf60c236cea7" title="Retrieve the directory for which this module serves as the umbrella.">getUmbrellaDir</a>();</div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> </div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> <span class="comment">// If we have a framework directory, stop looking.</span></div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> <span class="keywordflow">if</span> (Mod-><a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a>)</div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> }</div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span> </div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span> }</div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> <span class="comment"></span></div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span> <span class="comment">/// \brief Parse a module map file.</span></div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <span class="comment">/// module-map-file:</span></div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> <span class="comment">/// module-declaration*</span></div>
+<div class="line"><a name="l02079"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMapParser.html#ad3752f98506207781ba6a506f37e1228"> 2079</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMapParser.html#ad3752f98506207781ba6a506f37e1228" title="Parse a module map file.">ModuleMapParser::parseModuleMapFile</a>() {</div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span> <span class="keywordflow">switch</span> (Tok.<a class="code" href="structclang_1_1MMToken.html#a2292022d9a6ca6a52e5555e73357d778">Kind</a>) {</div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacfdbeb69247d08426216ed8dfcc12be7">MMToken::EndOfFile</a>:</div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span> <span class="keywordflow">return</span> HadError;</div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span> </div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba30d5cd45e7a706ec9628035ecb8b4ce4">MMToken::ExplicitKeyword</a>:</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4babc6b2954698c90a9bd71ce5c7714d104">MMToken::ExternKeyword</a>:</div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baaee3aab4fef91eadc493c221f4a136cb">MMToken::ModuleKeyword</a>:</div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7330c30ccee851f9c7e918080ff97b5c">MMToken::FrameworkKeyword</a>:</div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span> parseModuleDecl();</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> </div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bab52c81bbf584f8f4e30e4b9ee7524cb8">MMToken::Comma</a>:</div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba58c15e1805176ec3a5b3368952f783fc">MMToken::ConfigMacros</a>:</div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba7ecdc054dc41aa967d19a5a1a4b399b0">MMToken::Conflict</a>:</div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4baf194071d48a941dfaf44b135cd764077">MMToken::Exclaim</a>:</div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6b23f21ec91017cdfd211f8ca6c9ad82">MMToken::ExcludeKeyword</a>:</div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba3094a0eb1b6ff41cdd855823e5672b4d">MMToken::ExportKeyword</a>:</div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae7499b5dfe6d98e6d101eab72b13bdfb">MMToken::HeaderKeyword</a>:</div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba0509e35da3910d3bbbf91384abc5ad40">MMToken::Identifier</a>:</div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba6ec369f84e9b91c9d16f74efbd1c2c36">MMToken::LBrace</a>:</div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba543309e2a3f1a625e43b12e2e415f177">MMToken::LinkKeyword</a>:</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba73a9c8c5b7ad4861c5152d5c2bed29bb">MMToken::LSquare</a>:</div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bacf233185402ee25983d523fb04268ec4">MMToken::Period</a>:</div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba2d2ba141f0c7eb34e91c8f86b6a30ee4">MMToken::PrivateKeyword</a>:</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba8706853f89f49f7eb31b375e4d2395c4">MMToken::RBrace</a>:</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba859e13f4b67168456aa4bd5b758bfa37">MMToken::RSquare</a>:</div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba49abad35fc18db8438fbfab6c2095418">MMToken::RequiresKeyword</a>:</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac79841bc46ac28e7d9b64bb940da6993">MMToken::Star</a>:</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4ba4bbdb267187f1a5926eff2996c6a808e">MMToken::StringLiteral</a>:</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bac4961edb0aefa0c9db75b173d1a233f4">MMToken::UmbrellaKeyword</a>:</div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span> <span class="keywordflow">case</span> <a class="code" href="structclang_1_1MMToken.html#ac349990fea082bc69ee1ffcbc9ec9a4bae438908b5113391d88f8518f6227b0d3">MMToken::UseKeyword</a>:</div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Tok.<a class="code" href="structclang_1_1MMToken.html#aeff6c1999b8ff4967d14e2d3ef7d9b61">getLocation</a>(), diag::err_mmap_expected_module);</div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span> HadError = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span> consumeToken();</div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span> }</div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span> } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> }</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> </div>
+<div class="line"><a name="l02120"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#aa693079e31854e7297157e751ff6b7fd"> 2120</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#aa693079e31854e7297157e751ff6b7fd" title="Parse the given module map file, and record any modules we encounter.">ModuleMap::parseModuleMapFile</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File, <span class="keywordtype">bool</span> IsSystem) {</div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span> llvm::DenseMap<const FileEntry *, bool>::iterator Known</div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span> = ParsedModuleMap.find(File);</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span> <span class="keywordflow">if</span> (Known != ParsedModuleMap.end())</div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span> <span class="keywordflow">return</span> Known->second;</div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span> </div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> assert(Target != 0 && <span class="stringliteral">"Missing target information"</span>);</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</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> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a> = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#acefb5d310242160b1910104bbf4d8b2d" title="Create a new FileID that represents the specified file being #included from the specified IncludePosi...">createFileID</a>(File, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(), <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>);</div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span> <span class="keyword">const</span> llvm::MemoryBuffer *Buffer = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a35f2a3fbf5cf9bff34b1d7f613096437" title="Return the buffer for the specified FileID.">getBuffer</a>(ID);</div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span> <span class="keywordflow">if</span> (!Buffer)</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> <span class="keywordflow">return</span> ParsedModuleMap[File] = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span> </div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span> <span class="comment">// Parse this module map file.</span></div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span> <a class="code" href="classclang_1_1Lexer.html">Lexer</a> L(ID, SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a35f2a3fbf5cf9bff34b1d7f613096437" title="Return the buffer for the specified FileID.">getBuffer</a>(ID), SourceMgr, MMapLangOpts);</div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> Diags->getClient()->BeginSourceFile(MMapLangOpts);</div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span> <a class="code" href="classclang_1_1ModuleMapParser.html">ModuleMapParser</a> <a class="code" href="classclang_1_1Parser.html">Parser</a>(L, SourceMgr, Target, *Diags, *<span class="keyword">this</span>, File-><a class="code" href="classclang_1_1FileEntry.html#a93533898e5cfd56df70289244f623fd6" title="Return the directory the file lives in.">getDir</a>(),</div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span> BuiltinIncludeDir, IsSystem);</div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span> <span class="keywordtype">bool</span> Result = <a class="code" href="classclang_1_1Parser.html">Parser</a>.parseModuleMapFile();</div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span> Diags->getClient()->EndSourceFile();</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> ParsedModuleMap[File] = Result;</div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span> <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 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/ModuleMap_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,334 @@
+<!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: ModuleMap.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_925be8e1c75f746b0aee1084b3b1a980.html">Lex</a></li><li class="navelem"><a class="el" href="dir_c266f83cbdf5b0cb8b651438a3cfe616.html">Release+Asserts</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ModuleMap.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ModuleMap_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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Release+Asserts/ModuleMap.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Release+Asserts/ModuleMap.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> ModuleMap.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> /home/tstellar/llvm/include/llvm/ADT/Triple.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/ADT/StringRef.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.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/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LexDiagnostic.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc \</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00077"></a><span class="lineno"> 77</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LiteralSupport.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> /home/tstellar/llvm/include/llvm/Support/Host.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> /home/tstellar/llvm/include/llvm/Support/Path.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.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/Casting.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/Support/type_traits.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/DataTypes.h:</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> /home/tstellar/llvm/include/llvm/ADT/None.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.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/Optional.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/Compiler.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/Config/llvm-config.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/AlignOf.h:</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> /home/tstellar/llvm/include/llvm/ADT/Triple.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/ADT/Twine.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/StringRef.h:</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="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/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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/Support/PointerLikeTypeTraits.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/DenseSet.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/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.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/SwapByteOrder.h:</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.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/PointerUnion.h:</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/ADT/SmallVector.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/ADT/StringMap.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/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.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/MemoryBuffer.h:</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CharInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetCXXABI.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetOptions.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/StringSwitch.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h:</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LexDiagnostic.h:</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc:</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h:</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h:</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h:</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00234"></a><span class="lineno"> 234</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.h:</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LiteralSupport.h:</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> /home/tstellar/llvm/include/llvm/Support/Host.h:</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> /home/tstellar/llvm/include/llvm/Support/Path.h:</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 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/ModuleMap_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ModuleMap_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,456 @@
+<!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: ModuleMap.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_49bfb562b5f2c4dac4f33842ea680dda.html">Lex</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">ModuleMap.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="ModuleMap_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">//===--- ModuleMap.h - Describe the layout of modules -----------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This file defines the ModuleMap interface, which describes the layout of a</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// module as it relates to headers.</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> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#ifndef LLVM_CLANG_LEX_MODULEMAP_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_LEX_MODULEMAP_H</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="LangOptions_8h.html" title="Defines the clang::LangOptions interface.">clang/Basic/LangOptions.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="Basic_2Module_8h.html" title="Defines the clang::Module class, which describes a module in the source code.">clang/Basic/Module.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</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="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "llvm/ADT/IntrusiveRefCntPtr.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "llvm/ADT/StringMap.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span>clang {</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">class </span>DirectoryEntry;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">class </span>FileEntry;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">class </span>FileManager;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">class </span>DiagnosticConsumer;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">class </span>DiagnosticsEngine;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">class </span>HeaderSearch;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">class </span>ModuleMapParser;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html"> 39</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &SourceMgr;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<DiagnosticsEngine></a> Diags;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> *Target;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</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;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> /// \brief The directory used for Clang-supplied, builtin include headers,</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> /// such as "stdint.h".</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *BuiltinIncludeDir;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> /// \brief Language options used to parse the module map itself.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> /// These are always simple C language options.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"></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> MMapLangOpts;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// The module that we are building; related to \c LangOptions::CurrentModule.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *CompilingModule;</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">public</span>:</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// The module that the .cc source file is associated with.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a7a5b8df4ab18c5ed78cde851e2842e4d"> 60</a></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#a7a5b8df4ab18c5ed78cde851e2842e4d">SourceModule</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a2920cbcf5d7d15a5dc08cd142b839fe0"> 61</a></span> std::string <a class="code" href="classclang_1_1ModuleMap.html#a2920cbcf5d7d15a5dc08cd142b839fe0">SourceModuleName</a>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> /// \brief The top-level modules that are known.</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"></span> llvm::StringMap<Module *> Modules;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> /// \brief Describes the role of a module header.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8dec"> 69</a></span> <span class="comment"></span> <span class="keyword">enum</span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8dec" title="Describes the role of a module header.">ModuleHeaderRole</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> /// \brief This header is normally included in the module.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca50b6dee47a2d5b1f50f46dc46e4c96aa"> 71</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca50b6dee47a2d5b1f50f46dc46e4c96aa" title="This header is normally included in the module.">NormalHeader</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> /// \brief This header is included but private.</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca0500e1f1c1ee8f9e6c76c993aa48b0d4"> 73</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca0500e1f1c1ee8f9e6c76c993aa48b0d4" title="This header is included but private.">PrivateHeader</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> /// \brief This header is explicitly excluded from the module.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca29ca8d089c3fd646d54e611219d0d877"> 75</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca29ca8d089c3fd646d54e611219d0d877" title="This header is explicitly excluded from the module.">ExcludedHeader</a></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// Caution: Adding an enumerator needs other changes.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// Adjust the number of bits for KnownHeader::Storage.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// Adjust the bitfield HeaderFileInfo::HeaderRole size.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// Adjust the HeaderFileInfoTrait::ReadData streaming.</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// Adjust the HeaderFileInfoTrait::EmitData streaming.</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment"></span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"> /// \brief A header that is known to reside within a given module,</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> /// whether it was included or excluded.</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html"> 85</a></span> <span class="comment"></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html" title="A header that is known to reside within a given module, whether it was included or excluded...">KnownHeader</a> {</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> llvm::PointerIntPair<Module *, 2, ModuleHeaderRole> Storage;</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> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#aaba092396cecc3cb5a67b9e375b58fd5"> 89</a></span> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#aaba092396cecc3cb5a67b9e375b58fd5">KnownHeader</a>() : Storage(0, <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca50b6dee47a2d5b1f50f46dc46e4c96aa" title="This header is normally included in the module.">NormalHeader</a>) { }</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a45db7dd0f39fe5feebd78996bcfe470c"> 90</a></span> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a45db7dd0f39fe5feebd78996bcfe470c">KnownHeader</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *M, <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8dec" title="Describes the role of a module header.">ModuleHeaderRole</a> Role) : Storage(M, Role) { }</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"> /// \brief Retrieve the module the header is stored in.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a7b62eee1d73659d194a543a83256c9f5"> 93</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a7b62eee1d73659d194a543a83256c9f5" title="Retrieve the module the header is stored in.">getModule</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Storage.getPointer(); }</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"></span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"> /// \brief The role of this header within the module.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a615f8b7ad99d67134a8a55d1d3fab994"> 96</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8dec" title="Describes the role of a module header.">ModuleHeaderRole</a> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a615f8b7ad99d67134a8a55d1d3fab994" title="The role of this header within the module.">getRole</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Storage.getInt(); }</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"></span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> /// \brief Whether this header is available in the module.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a643f9e9aff1da04366c728d5c2131862"> 99</a></span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a643f9e9aff1da04366c728d5c2131862" title="Whether this header is available in the module.">isAvailable</a>()<span class="keyword"> const </span>{ </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a615f8b7ad99d67134a8a55d1d3fab994" title="The role of this header within the module.">getRole</a>() != <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8deca29ca8d089c3fd646d54e611219d0d877" title="This header is explicitly excluded from the module.">ExcludedHeader</a> && <a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a7b62eee1d73659d194a543a83256c9f5" title="Retrieve the module the header is stored in.">getModule</a>()-><a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>(); </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// \brief Whether this known header is valid (i.e., it has an</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// associated module).</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#aad43e50a18b828a87b13f3fec6a09398"> 105</a></span> LLVM_EXPLICIT <span class="keyword">operator</span> <a class="code" href="stdbool_8h.html#abb452686968e48b67397da5f97445f5b">bool</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Storage.getPointer() != 0; }</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> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">typedef</span> llvm::DenseMap<const FileEntry *, SmallVector<KnownHeader, 1> ></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> HeadersMap;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"></span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> /// \brief Mapping from each header to the module that owns the contents of</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"> /// that header.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"></span> HeadersMap Headers;</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 Mapping from directories with umbrella headers to the module</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> /// that is generated from the umbrella header.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> /// This mapping is used to map headers that haven't explicitly been named</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> /// in the module map over to the module that includes them via its umbrella</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> /// header.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"></span> llvm::DenseMap<const DirectoryEntry *, Module *> UmbrellaDirs;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment"></span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"> /// \brief A directory for which framework modules can be inferred.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"></span> <span class="keyword">struct </span>InferredDirectory {</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> InferredDirectory() : InferModules(), InferSystemModules() { }</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 Whether to infer modules from this directory.</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"></span> <span class="keywordtype">unsigned</span> InferModules : 1;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"></span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"> /// \brief Whether the modules we infer are [system] modules.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"></span> <span class="keywordtype">unsigned</span> InferSystemModules : 1;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment"></span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment"> /// \brief The names of modules that cannot be inferred within this</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"> /// directory.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"></span> SmallVector<std::string, 2> ExcludedModules;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> };</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"></span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> /// \brief A mapping from directories to information about inferring</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> /// framework modules from within those directories.</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"></span> llvm::DenseMap<const DirectoryEntry *, InferredDirectory> InferredDirectories;</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"> /// \brief Describes whether we haved parsed a particular file as a module</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"> /// map.</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment"></span> llvm::DenseMap<const FileEntry *, bool> ParsedModuleMap;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a69fccb440615f32e24516ed4e718457d"> 147</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ModuleMapParser.html">ModuleMapParser</a>;</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 Resolve the given export declaration into an actual export</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"> /// declaration.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment"> /// \param Mod The module in which we're resolving the export declaration.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment"> /// \param Unresolved The export declaration to resolve.</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"> /// \param Complain Whether this routine should complain about unresolvable</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment"> /// exports.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment"> /// \returns The resolved export declaration, which will have a NULL pointer</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"> /// if the export could not be resolved.</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">Module::ExportDecl</a> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> resolveExport(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keyword">const</span> <a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html" title="Describes an exported module that has not yet been resolved (perhaps because the module it refers to ...">Module::UnresolvedExportDecl</a> &Unresolved,</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">bool</span> Complain) <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"> /// \brief Resolve the given module id to an actual module.</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 Id The module-id to resolve.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment"> /// \param Mod The module in which we're resolving the module-id.</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"> /// \param Complain Whether this routine should complain about unresolvable</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> /// module-ids.</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"> /// \returns The resolved module, or null if the module-id could not be</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment"> /// resolved.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *resolveModuleId(<span class="keyword">const</span> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> &Id, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keywordtype">bool</span> Complain) <span class="keyword">const</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="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment"> /// \brief Construct a new module map.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment"> /// \param SourceMgr The source manager used to find module files and headers.</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment"> /// This source manager should be shared with the header-search mechanism,</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment"> /// since they will refer to the same headers.</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment"> /// \param DC A diagnostic consumer that will be cloned for use in generating</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment"> /// diagnostics.</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"> /// \param LangOpts Language options for this translation unit.</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"> /// \param Target The target for this translation unit.</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment"></span> <a class="code" href="classclang_1_1ModuleMap.html#a34520f3076456909ca2ac7e391dc12e2" title="Construct a new module map.">ModuleMap</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="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</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> &DC,</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts, <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> *Target,</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</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);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"></span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> /// \brief Destroy the module map.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment"></span> <a class="code" href="classclang_1_1ModuleMap.html#ab8769cd7eba3cb7f8f1cd2dde890603d" title="Destroy the module map.">~ModuleMap</a>();</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment"></span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment"> /// \brief Set the target information.</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#abc441df169e00dbd5ab3a5db003d454f" title="Set the target information.">setTarget</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target);</div>
+<div class="line"><a name="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"> /// \brief Set the directory that contains Clang-supplied include</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment"> /// files, such as our stdarg.h or tgmath.h.</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a6c624a7392febb43c7bb1a19e835ab34"> 204</a></span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a6c624a7392febb43c7bb1a19e835ab34" title="Set the directory that contains Clang-supplied include files, such as our stdarg.h or tgmath...">setBuiltinIncludeDir</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *Dir) {</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> BuiltinIncludeDir = Dir;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment"></span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment"> /// \brief Retrieve the module that owns the given header file, if any.</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment"> /// \param File The header file that is likely to be included.</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment"> /// \param RequestingModule Specifies the module the header is intended to be</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment"> /// used from. Used to disambiguate if a header is present in multiple</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment"> /// modules.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment"> /// \returns The module KnownHeader, which provides the module that owns the</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment"> /// given header file. The KnownHeader is default constructed to indicate</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment"> /// that no module owns this header file.</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment"></span> KnownHeader <a class="code" href="classclang_1_1ModuleMap.html#a127dbf10d2e3134aedb7d7c60cf23cc9" title="Retrieve the module that owns the given header file, if any.">findModuleForHeader</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File,</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *RequestingModule = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment"></span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment"> /// \brief Determine whether the given header is part of a module</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment"> /// marked 'unavailable'.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#af4fbca415ce7cbde70d1fc96d9285d10" title="Determine whether the given header is part of a module marked 'unavailable'.">isHeaderInUnavailableModule</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *Header) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment"></span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment"> /// \brief Retrieve a module with the given name.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment"> /// \param Name The name of the module to look up.</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment"> /// \returns The named module, if known; otherwise, returns null.</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#af4c8a3d331c1f6f1e046e7f87adc7973" title="Retrieve a module with the given name.">findModule</a>(StringRef Name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment"></span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment"> /// \brief Retrieve a module with the given name using lexical name lookup,</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment"> /// starting at the given context.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment"> /// \param Name The name of the module to look up.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment"> /// \param Context The module context, from which we will perform lexical</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment"> /// name lookup.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment"> /// \returns The named module, if known; otherwise, returns null.</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#a4227573c64ca68ac5f24f27de1f57b49" title="Retrieve a module with the given name using lexical name lookup, starting at the given context...">lookupModuleUnqualified</a>(StringRef Name, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment"></span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"> /// \brief Retrieve a module with the given name within the given context,</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment"> /// using direct (qualified) name lookup.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment"> /// \param Name The name of the module to look up.</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment"> /// </span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment"> /// \param Context The module for which we will look for a submodule. If</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment"> /// null, we will look for a top-level module.</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="comment"> /// \returns The named submodule, if known; otherwose, returns null.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#aad648df48b6a75a9321ac7f2e383c5e0" title="Retrieve a module with the given name within the given context, using direct (qualified) name lookup...">lookupModuleQualified</a>(StringRef Name, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment"></span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment"> /// \brief Find a new module or submodule, or create it if it does not already</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="comment"> /// exist.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment"> /// \param Name The name of the module to find or create.</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment"> /// \param Parent The module that will act as the parent of this submodule,</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment"> /// or NULL to indicate that this is a top-level module.</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment"> /// \param IsFramework Whether this is a framework module.</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment"> /// \param IsExplicit Whether this is an explicit submodule.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment"> /// \returns The found or newly-created module, along with a boolean value</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment"> /// that will be true if the module is newly-created.</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment"></span> std::pair<Module *, bool> <a class="code" href="classclang_1_1ModuleMap.html#a115a5b7b114346aaa534995084fc3ac0" title="Find a new module or submodule, or create it if it does not already exist.">findOrCreateModule</a>(StringRef Name, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Parent, </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">bool</span> IsFramework,</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keywordtype">bool</span> IsExplicit);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"></span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment"> /// \brief Determine whether we can infer a framework module a framework</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment"> /// with the given name in the given</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment"> /// \param ParentDir The directory that is the parent of the framework</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="comment"> /// directory.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment"> /// \param Name The name of the module.</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment"> /// \param IsSystem Will be set to 'true' if the inferred module must be a</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment"> /// system module.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment"> /// \returns true if we are allowed to infer a framework module, and false</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment"> /// otherwise.</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#a328854f497c38e79b5b1e291d572dec9" title="Determine whether we can infer a framework module a framework with the given name in the given...">canInferFrameworkModule</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *ParentDir,</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> StringRef Name, <span class="keywordtype">bool</span> &IsSystem) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="comment"></span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment"> /// \brief Infer the contents of a framework module map from the given</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment"> /// framework directory.</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#aa6a0fbdfb7431809f16fd273f84da5b6" title="Infer the contents of a framework module map from the given framework directory.">inferFrameworkModule</a>(StringRef ModuleName, </div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *FrameworkDir,</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keywordtype">bool</span> IsSystem, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Parent);</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment"></span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment"> /// \brief Retrieve the module map file containing the definition of the given</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment"> /// module.</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="comment"> /// \param Module The module whose module map file will be returned, if known.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="comment"> /// \returns The file entry for the module map file containing the given</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="comment"> /// module, or NULL if the module definition was inferred.</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *<a class="code" href="classclang_1_1ModuleMap.html#aa287c482ce0aac99831c2e2746b29612" title="Retrieve the module map file containing the definition of the given module.">getContainingModuleMapFile</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="comment"></span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment"> /// \brief Resolve all of the unresolved exports in the given module.</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="comment"> /// \param Mod The module whose exports should be resolved.</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="comment"> /// \param Complain Whether to emit diagnostics for failures.</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment"> /// \returns true if any errors were encountered while resolving exports,</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment"> /// false otherwise.</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#a03d91ee91e3d302d32885c4d790b3915" title="Resolve all of the unresolved exports in the given module.">resolveExports</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keywordtype">bool</span> Complain);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment"></span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment"> /// \brief Resolve all of the unresolved uses in the given module.</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment"> /// \param Mod The module whose uses should be resolved.</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment"> /// \param Complain Whether to emit diagnostics for failures.</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="comment"> /// \returns true if any errors were encountered while resolving uses,</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="comment"> /// false otherwise.</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#aff262a15ac7933edd463953d969e4f6b" title="Resolve all of the unresolved uses in the given module.">resolveUses</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keywordtype">bool</span> Complain);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment"></span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment"> /// \brief Resolve all of the unresolved conflicts in the given module.</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment"> /// \param Mod The module whose conflicts should be resolved.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment"> /// \param Complain Whether to emit diagnostics for failures.</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment"> /// \returns true if any errors were encountered while resolving conflicts,</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment"> /// false otherwise.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#a635593eb7f27a7297eb22afacd08d104" title="Resolve all of the unresolved conflicts in the given module.">resolveConflicts</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keywordtype">bool</span> Complain);</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment"></span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment"> /// \brief Infers the (sub)module based on the given source location and</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment"> /// source manager.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment"> /// \param Loc The location within the source that we are querying, along</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment"> /// with its source manager.</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="comment"> /// \returns The module that owns this source location, or null if no</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="comment"> /// module owns this source location.</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment"></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1ModuleMap.html#a5fbb3347d523ee9b3f32c71ef4322102" title="Infers the (sub)module based on the given source location and source manager.">inferModuleFromLocation</a>(<a class="code" href="classclang_1_1FullSourceLoc.html" title="A SourceLocation and its associated SourceManager.">FullSourceLoc</a> Loc);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment"></span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment"> /// \brief Sets the umbrella header of the given module to the given</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="comment"> /// header.</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a4e5eb634a8ba4425d545d84b6b28156d" title="Sets the umbrella header of the given module to the given header.">setUmbrellaHeader</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *UmbrellaHeader);</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="comment"></span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment"> /// \brief Sets the umbrella directory of the given module to the given</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment"> /// directory.</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a5cc71eb848ebea391b1a075496f2f7ee" title="Sets the umbrella directory of the given module to the given directory.">setUmbrellaDir</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *UmbrellaDir);</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="comment"></span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment"> /// \brief Adds this header to the given module.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment"> /// \param Role The role of the header wrt the module.</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a36df90fd8a0f51e6b762938002ec038d" title="Adds this header to the given module.">addHeader</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod, <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *Header,</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8dec" title="Describes the role of a module header.">ModuleHeaderRole</a> Role);</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="comment"></span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="comment"> /// \brief Parse the given module map file, and record any modules we </span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="comment"> /// encounter.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="comment"> /// \param File The file to be parsed.</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="comment"> /// \param IsSystem Whether this module map file is in a system header</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="comment"> /// directory, and therefore should be considered a system module.</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="comment"> /// \returns true if an error occurred, false otherwise.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModuleMap.html#aa693079e31854e7297157e751ff6b7fd" title="Parse the given module map file, and record any modules we encounter.">parseModuleMapFile</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File, <span class="keywordtype">bool</span> IsSystem);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="comment"></span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="comment"> /// \brief Dump the contents of the module map, for debugging purposes.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ModuleMap.html#a26b885e43a6f5268a02cd4d09efbf5ad" title="Dump the contents of the module map, for debugging purposes.">dump</a>();</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a3798c26000fac4ac7c3da9ca67f1f619"> 371</a></span> <span class="keyword">typedef</span> llvm::StringMap<Module *>::const_iterator <a class="code" href="classclang_1_1ModuleMap.html#a3798c26000fac4ac7c3da9ca67f1f619">module_iterator</a>;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a3c37bdb86dfab455fb9d19c724bd4f9b"> 372</a></span> <a class="code" href="classclang_1_1ModuleMap.html#a3798c26000fac4ac7c3da9ca67f1f619">module_iterator</a> <a class="code" href="classclang_1_1ModuleMap.html#a3c37bdb86dfab455fb9d19c724bd4f9b">module_begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Modules.begin(); }</div>
+<div class="line"><a name="l00373"></a><span class="lineno"><a class="code" href="classclang_1_1ModuleMap.html#a0a5b86a1ca98add98e810d7d73bdfe0a"> 373</a></span> <a class="code" href="classclang_1_1ModuleMap.html#a3798c26000fac4ac7c3da9ca67f1f619">module_iterator</a> <a class="code" href="classclang_1_1ModuleMap.html#a0a5b86a1ca98add98e810d7d73bdfe0a">module_end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Modules.end(); }</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> };</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> }</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 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/MultipleIncludeOpt_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultipleIncludeOpt_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultipleIncludeOpt_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultipleIncludeOpt_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: MultipleIncludeOpt.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_49bfb562b5f2c4dac4f33842ea680dda.html">Lex</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MultipleIncludeOpt.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MultipleIncludeOpt_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">//===--- MultipleIncludeOpt.h - Header Multiple-Include Optzn ---*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//===----------------------------------------------------------------------===//</span><span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">/// \file</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">/// \brief Defines the MultipleIncludeOpt interface.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"></span><span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef LLVM_CLANG_MULTIPLEINCLUDEOPT_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_MULTIPLEINCLUDEOPT_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="SourceLocation_8h.html" title="Defines the clang::SourceLocation class and associated facilities.">clang/Basic/SourceLocation.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">class </span>IdentifierInfo;</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">/// \brief Implements the simple state machine that the Lexer class uses to</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/// detect files subject to the 'multiple-include' optimization.</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">/// The public methods in this class are triggered by various</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">/// events that occur when a file is lexed, and after the entire file is lexed,</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">/// information about which macro (if any) controls the header is returned.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html"> 29</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1MultipleIncludeOpt.html" title="Implements the simple state machine that the Lexer class uses to detect files subject to the 'multipl...">MultipleIncludeOpt</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> /// ReadAnyTokens - This is set to false when a file is first opened and true</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> /// any time a token is returned to the client or a (non-multiple-include)</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> /// directive is parsed. When the final \#endif is parsed this is reset back</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> /// to false, that way any tokens before the first \#ifdef or after the last</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> /// \#endif can be easily detected.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"></span> <span class="keywordtype">bool</span> ReadAnyTokens;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> /// ImmediatelyAfterTopLevelIfndef - This is true when the only tokens</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> /// processed in the file so far is an #ifndef and an identifier. Used in</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> /// the detection of header guards in a file.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"></span> <span class="keywordtype">bool</span> ImmediatelyAfterTopLevelIfndef;</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"> /// ReadAnyTokens - This is set to false when a file is first opened and true</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> /// any time a token is returned to the client or a (non-multiple-include)</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> /// directive is parsed. When the final #endif is parsed this is reset back</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> /// to false, that way any tokens before the first #ifdef or after the last</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> /// #endif can be easily detected.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"></span> <span class="keywordtype">bool</span> DidMacroExpansion;</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"> /// TheMacro - The controlling macro for a file, if valid.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *TheMacro;</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"> /// DefinedMacro - The macro defined right after TheMacro, if any.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *DefinedMacro;</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> <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> MacroLoc;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> DefinedLoc;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#a51ea841985d037d55a757e20cf67131f"> 59</a></span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a51ea841985d037d55a757e20cf67131f">MultipleIncludeOpt</a>() {</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> ReadAnyTokens = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> ImmediatelyAfterTopLevelIfndef = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> DidMacroExpansion = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> TheMacro = 0;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> DefinedMacro = 0;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#a9cc46cda81b2202845aac7f06a933d45"> 67</a></span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a9cc46cda81b2202845aac7f06a933d45">GetMacroLocation</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">return</span> MacroLoc;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#ae5af6ad8f8e2df1dbbfe9e4dcb19f229"> 71</a></span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#ae5af6ad8f8e2df1dbbfe9e4dcb19f229">GetDefinedLocation</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> DefinedLoc;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#adc6998eedbfdd5beb27666d1bd6a8604"> 75</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#adc6998eedbfdd5beb27666d1bd6a8604">resetImmediatelyAfterTopLevelIfndef</a>() {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> ImmediatelyAfterTopLevelIfndef = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#a7d95aa602a7dc413510161ef8d84814b"> 79</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a7d95aa602a7dc413510161ef8d84814b">SetDefinedMacro</a>(<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *M, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> DefinedMacro = M;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> DefinedLoc = Loc;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"></span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> /// Invalidate - Permanently mark this file as not being suitable for the</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"> /// include-file optimization.</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#a592021395f25d71e85b594f2bdfa853b"> 86</a></span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a592021395f25d71e85b594f2bdfa853b">Invalidate</a>() {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// If we have read tokens but have no controlling macro, the state-machine</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// below can never "accept".</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> ReadAnyTokens = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> ImmediatelyAfterTopLevelIfndef = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> DefinedMacro = 0;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> TheMacro = 0;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"></span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"> /// getHasReadAnyTokensVal - This is used for the \#ifndef hande-shake at the</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> /// top of the file when reading preprocessor directives. Otherwise, reading</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> /// the "ifndef x" would count as reading tokens.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#a23426d820924a7de712697ac350d1a69"> 98</a></span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a23426d820924a7de712697ac350d1a69">getHasReadAnyTokensVal</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ReadAnyTokens; }</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> /// getImmediatelyAfterTopLevelIfndef - returns true if the last directive</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> /// was an #ifndef at the beginning of the file.</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#a685c4d7282424823e67fe1595d0db250"> 102</a></span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a685c4d7282424823e67fe1595d0db250">getImmediatelyAfterTopLevelIfndef</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> ImmediatelyAfterTopLevelIfndef;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// If a token is read, remember that we have seen a side-effect in this file.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#ac6805e623dcb09dd02f5bf8e0c3f8185"> 107</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#ac6805e623dcb09dd02f5bf8e0c3f8185">ReadToken</a>() {</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> ReadAnyTokens = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> ImmediatelyAfterTopLevelIfndef = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"></span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> /// ExpandedMacro - When a macro is expanded with this lexer as the current</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"> /// buffer, this method is called to disable the MIOpt if needed.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#af86888809694748a1f511cefcf63cc91"> 114</a></span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#af86888809694748a1f511cefcf63cc91">ExpandedMacro</a>() { DidMacroExpansion = <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> /// \brief Called when entering a top-level \#ifndef directive (or the</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> /// "\#if !defined" equivalent) without any preceding tokens.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> /// Note, we don't care about the input value of 'ReadAnyTokens'. The caller</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> /// ensures that this is only called if there are no tokens read before the</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> /// \#ifndef. The caller is required to do this, because reading the \#if</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> /// line obviously reads in in tokens.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#aef87b0d5364cd004dbf6335655de0f3d"> 123</a></span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#aef87b0d5364cd004dbf6335655de0f3d" title="Called when entering a top-level #ifndef directive (or the "\#if !defined" equivalent) without any pr...">EnterTopLevelIfndef</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *M, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// If the macro is already set, this is after the top-level #endif.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span> (TheMacro)</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a592021395f25d71e85b594f2bdfa853b">Invalidate</a>();</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// If we have already expanded a macro by the end of the #ifndef line, then</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// there is a macro expansion *in* the #ifndef line. This means that the</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// condition could evaluate differently when subsequently #included. Reject</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// this.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">if</span> (DidMacroExpansion)</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a592021395f25d71e85b594f2bdfa853b">Invalidate</a>();</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Remember that we're in the #if and that we have the macro.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> ReadAnyTokens = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> ImmediatelyAfterTopLevelIfndef = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> TheMacro = M;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> MacroLoc = Loc;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> }</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"></span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment"> /// \brief Invoked when a top level conditional (except \#ifndef) is found.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#ad6b7f9f7ebe4cea60792c6bade10ea20"> 143</a></span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#ad6b7f9f7ebe4cea60792c6bade10ea20" title="Invoked when a top level conditional (except #ifndef) is found.">EnterTopLevelConditional</a>() {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// If a conditional directive (except #ifndef) is found at the top level,</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// there is a chunk of the file not guarded by the controlling macro.</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a592021395f25d71e85b594f2bdfa853b">Invalidate</a>();</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 Called when the lexer exits the top-level conditional.</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#a6715b998517d175774050fd2410de7d8"> 150</a></span> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a6715b998517d175774050fd2410de7d8" title="Called when the lexer exits the top-level conditional.">ExitTopLevelConditional</a>() {</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// If we have a macro, that means the top of the file was ok. Set our state</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// back to "not having read any tokens" so we can detect anything after the</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// #endif.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">if</span> (!TheMacro) <span class="keywordflow">return</span> <a class="code" href="classclang_1_1MultipleIncludeOpt.html#a592021395f25d71e85b594f2bdfa853b">Invalidate</a>();</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// At this point, we haven't "read any tokens" but we do have a controlling</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment">// macro.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> ReadAnyTokens = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> ImmediatelyAfterTopLevelIfndef = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment"></span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment"> /// \brief Once the entire file has been lexed, if there is a controlling</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment"> /// macro, return it.</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#ab3a84e4727386e43bc7993d36342ded1"> 164</a></span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *<a class="code" href="classclang_1_1MultipleIncludeOpt.html#ab3a84e4727386e43bc7993d36342ded1" title="Once the entire file has been lexed, if there is a controlling macro, return it.">GetControllingMacroAtEndOfFile</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">// If we haven't read any tokens after the #endif, return the controlling</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// macro if it's valid (if it isn't, it will be null).</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">if</span> (!ReadAnyTokens)</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">return</span> TheMacro;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"></span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> /// \brief If the ControllingMacro is followed by a macro definition, return</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment"> /// the macro that was defined.</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="classclang_1_1MultipleIncludeOpt.html#a8672844fec0ea48d4456096e1e1b5c9d"> 174</a></span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *<a class="code" href="classclang_1_1MultipleIncludeOpt.html#a8672844fec0ea48d4456096e1e1b5c9d" title="If the ControllingMacro is followed by a macro definition, return the macro that was defined...">GetDefinedMacro</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">return</span> DefinedMacro;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> };</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> } <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:44 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/MultiplexConsumer_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,374 @@
+<!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: MultiplexConsumer.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">MultiplexConsumer.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MultiplexConsumer_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">//===- MultiplexConsumer.cpp - AST Consumer for PCH Generation --*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This file defines the MultiplexConsumer class. It also declares and defines</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// MultiplexASTDeserializationListener and MultiplexASTMutationListener, which</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// are implementation details of MultiplexConsumer.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="MultiplexConsumer_8h.html">clang/Frontend/MultiplexConsumer.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="ASTMutationListener_8h.html">clang/AST/ASTMutationListener.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="DeclGroup_8h.html">clang/AST/DeclGroup.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="ASTDeserializationListener_8h.html">clang/Serialization/ASTDeserializationListener.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">using namespace </span>clang;</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">namespace </span>clang {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// This ASTDeserializationListener forwards its notifications to a set of</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// child listeners.</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html"> 27</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html">MultiplexASTDeserializationListener</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ASTDeserializationListener.html">ASTDeserializationListener</a> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// Does NOT take ownership of the elements in L.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html">MultiplexASTDeserializationListener</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">const</span> std::vector<ASTDeserializationListener*>& L);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReaderInitialized(<a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a> *Reader);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> IdentifierRead(<a class="code" href="namespaceclang_1_1serialization.html#aa7a1e72ed4b332bf9f49c7410e175cad" title="An ID number that refers to an identifier in an AST file.">serialization::IdentID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> TypeRead(<a class="code" href="classclang_1_1serialization_1_1TypeIdx.html" title="A type index; the type ID with the qualifier bits removed.">serialization::TypeIdx</a> Idx, <a class="code" href="classclang_1_1QualType.html">QualType</a> T);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> DeclRead(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> ID, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SelectorRead(<a class="code" href="namespaceclang_1_1serialization.html#a79d7521f50e764df679984a7df6bbd9c" title="An ID number that refers to an ObjC selector in an AST file.">serialization::SelectorID</a> iD, <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> MacroDefinitionRead(<a class="code" href="namespaceclang_1_1serialization.html#a69b0c2eae71e4e80def76ebd48d75957" title="An ID number that refers to an entity in the detailed preprocessing record.">serialization::PreprocessedEntityID</a>, </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *MD);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> std::vector<ASTDeserializationListener*> Listeners;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#ad5cbe319204899f62ada4a0103cc4b84"> 45</a></span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#ad5cbe319204899f62ada4a0103cc4b84">MultiplexASTDeserializationListener::MultiplexASTDeserializationListener</a>(</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">const</span> std::vector<ASTDeserializationListener*>& L)</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> : Listeners(L) {</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> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a3c2ca15606ae60eed284d54ae57cc6b6"> 50</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a3c2ca15606ae60eed284d54ae57cc6b6" title="The ASTReader was initialized.">MultiplexASTDeserializationListener::ReaderInitialized</a>(</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a> *Reader) {</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a3c2ca15606ae60eed284d54ae57cc6b6" title="The ASTReader was initialized.">ReaderInitialized</a>(Reader);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a6e65452689bdda381bc1b78478af8d0f"> 56</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a6e65452689bdda381bc1b78478af8d0f" title="An identifier was deserialized from the AST file.">MultiplexASTDeserializationListener::IdentifierRead</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <a class="code" href="namespaceclang_1_1serialization.html#aa7a1e72ed4b332bf9f49c7410e175cad" title="An ID number that refers to an identifier in an AST file.">serialization::IdentID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II) {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a6e65452689bdda381bc1b78478af8d0f" title="An identifier was deserialized from the AST file.">IdentifierRead</a>(ID, II);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a6e96f4bd294237f15569492e78f21dda"> 62</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a6e96f4bd294237f15569492e78f21dda" title="A type was deserialized from the AST file. The ID here has the qualifier bits already removed...">MultiplexASTDeserializationListener::TypeRead</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <a class="code" href="classclang_1_1serialization_1_1TypeIdx.html" title="A type index; the type ID with the qualifier bits removed.">serialization::TypeIdx</a> Idx, <a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a6e96f4bd294237f15569492e78f21dda" title="A type was deserialized from the AST file. The ID here has the qualifier bits already removed...">TypeRead</a>(Idx, T);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a24be19c5fcd6f2f90de2c0100d2d3106"> 68</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a24be19c5fcd6f2f90de2c0100d2d3106" title="A decl was deserialized from the AST file.">MultiplexASTDeserializationListener::DeclRead</a>(</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a24be19c5fcd6f2f90de2c0100d2d3106" title="A decl was deserialized from the AST file.">DeclRead</a>(ID, D);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a1d2c8f792b92a24b316771c04a919981"> 74</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a1d2c8f792b92a24b316771c04a919981" title="A selector was read from the AST file.">MultiplexASTDeserializationListener::SelectorRead</a>(</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <a class="code" href="namespaceclang_1_1serialization.html#a79d7521f50e764df679984a7df6bbd9c" title="An ID number that refers to an ObjC selector in an AST file.">serialization::SelectorID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel) {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#a1d2c8f792b92a24b316771c04a919981" title="A selector was read from the AST file.">SelectorRead</a>(ID, Sel);</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_1MultiplexASTDeserializationListener.html#ae15dd8c05a629eaca4dcded3769e6241"> 80</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#ae15dd8c05a629eaca4dcded3769e6241" title="A macro definition was read from the AST file.">MultiplexASTDeserializationListener::MacroDefinitionRead</a>(</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <a class="code" href="namespaceclang_1_1serialization.html#a69b0c2eae71e4e80def76ebd48d75957" title="An ID number that refers to an entity in the detailed preprocessing record.">serialization::PreprocessedEntityID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *MD) {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html#ae15dd8c05a629eaca4dcded3769e6241" title="A macro definition was read from the AST file.">MacroDefinitionRead</a>(ID, MD);</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">// This ASTMutationListener forwards its notifications to a set of</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// child listeners.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html"> 88</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1MultiplexASTMutationListener.html">MultiplexASTMutationListener</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ASTMutationListener.html" title="An abstract interface that should be implemented by listeners that want to be notified when an AST en...">ASTMutationListener</a> {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// Does NOT take ownership of the elements in L.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#aba9623cfd021bce93b2e71dbdd4221c2">MultiplexASTMutationListener</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<ASTMutationListener*></a> L);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a9ba9faeba0f4bbc3f287dd22fae5626a" title="A new TagDecl definition was completed.">CompletedTagDefinition</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *D);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a64aae70f8e1c1e4830292e4b9d05e4bf" title="A new declaration with name has been added to a DeclContext.">AddedVisibleDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#abc6c7b79722edef00a952104add5e5e1" title="An implicit member was added after the definition was completed.">AddedCXXImplicitMember</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *TD,</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html" title="Represents a class template specialization, which refers to a class template with a given set of temp...">ClassTemplateSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *TD,</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html" title="Represents a variable template specialization, which refers to a variable template with a given set o...">VarTemplateSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionTemplateDecl.html" title="Declaration of a template function.">FunctionTemplateDecl</a> *TD,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a22d91c011fde59cd463e3cd549ef9f41" title="A function's return type has been deduced.">DeducedReturnType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD, <a class="code" href="classclang_1_1QualType.html">QualType</a> ReturnType);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#af0faf16655caf66ead339fba39f62841" title="An implicit member got a definition.">CompletedImplicitDefinition</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a955bc787702e316433ed716a594a13d0" title="A static data member was implicitly instantiated.">StaticDataMemberInstantiated</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#aa1d51ebf3d9acc2b776b9e132fc1e6ea" title="A new objc category class was added for an interface.">AddedObjCCategoryToInterface</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *CatD,</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *IFD);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a7248a5b61437bae73de366eb29e6ddf4" title="A objc class extension redeclared or introduced a property.">AddedObjCPropertyInClassExtension</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *Prop,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *OrigProp,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *ClassExt);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#af0fdf8f175b689771b15e0112cbab97b" title="A declaration is marked used which was not previously marked used.">DeclarationMarkedUsed</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) LLVM_OVERRIDE;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> std::vector<ASTMutationListener*> Listeners;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> };</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#aba9623cfd021bce93b2e71dbdd4221c2"> 116</a></span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#aba9623cfd021bce93b2e71dbdd4221c2">MultiplexASTMutationListener::MultiplexASTMutationListener</a>(</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<ASTMutationListener*></a> L)</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> : Listeners(L.begin(), L.end()) {</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> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a9ba9faeba0f4bbc3f287dd22fae5626a"> 121</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a9ba9faeba0f4bbc3f287dd22fae5626a" title="A new TagDecl definition was completed.">MultiplexASTMutationListener::CompletedTagDefinition</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *D) {</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a9ba9faeba0f4bbc3f287dd22fae5626a" title="A new TagDecl definition was completed.">CompletedTagDefinition</a>(D);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a64aae70f8e1c1e4830292e4b9d05e4bf"> 126</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a64aae70f8e1c1e4830292e4b9d05e4bf" title="A new declaration with name has been added to a DeclContext.">MultiplexASTMutationListener::AddedVisibleDecl</a>(</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a64aae70f8e1c1e4830292e4b9d05e4bf" title="A new declaration with name has been added to a DeclContext.">AddedVisibleDecl</a>(DC, D);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#abc6c7b79722edef00a952104add5e5e1"> 132</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#abc6c7b79722edef00a952104add5e5e1" title="An implicit member was added after the definition was completed.">MultiplexASTMutationListener::AddedCXXImplicitMember</a>(</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#abc6c7b79722edef00a952104add5e5e1" title="An implicit member was added after the definition was completed.">AddedCXXImplicitMember</a>(RD, D);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }</div>
+<div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96"> 137</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">MultiplexASTMutationListener::AddedCXXTemplateSpecialization</a>(</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *TD, <span class="keyword">const</span> <a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html" title="Represents a class template specialization, which refers to a class template with a given set of temp...">ClassTemplateSpecializationDecl</a> *D) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(TD, D);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a4ade93f509a85206c039e258030b78f8"> 142</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">MultiplexASTMutationListener::AddedCXXTemplateSpecialization</a>(</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *TD, <span class="keyword">const</span> <a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html" title="Represents a variable template specialization, which refers to a variable template with a given set o...">VarTemplateSpecializationDecl</a> *D) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(TD, D);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> }</div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a11f3581073fecc4a46823244808b418f"> 147</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">MultiplexASTMutationListener::AddedCXXTemplateSpecialization</a>(</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionTemplateDecl.html" title="Declaration of a template function.">FunctionTemplateDecl</a> *TD, <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D) {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a072ebcc43e086e360b99cda6d4e3ef96" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(TD, D);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> }</div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a22d91c011fde59cd463e3cd549ef9f41"> 152</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a22d91c011fde59cd463e3cd549ef9f41" title="A function's return type has been deduced.">MultiplexASTMutationListener::DeducedReturnType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD,</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> ReturnType) {</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a22d91c011fde59cd463e3cd549ef9f41" title="A function's return type has been deduced.">DeducedReturnType</a>(FD, ReturnType);</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_1MultiplexASTMutationListener.html#af0faf16655caf66ead339fba39f62841"> 157</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#af0faf16655caf66ead339fba39f62841" title="An implicit member got a definition.">MultiplexASTMutationListener::CompletedImplicitDefinition</a>(</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D) {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#af0faf16655caf66ead339fba39f62841" title="An implicit member got a definition.">CompletedImplicitDefinition</a>(D);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> }</div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a955bc787702e316433ed716a594a13d0"> 162</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a955bc787702e316433ed716a594a13d0" title="A static data member was implicitly instantiated.">MultiplexASTMutationListener::StaticDataMemberInstantiated</a>(</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D) {</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a955bc787702e316433ed716a594a13d0" title="A static data member was implicitly instantiated.">StaticDataMemberInstantiated</a>(D);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#aa1d51ebf3d9acc2b776b9e132fc1e6ea"> 167</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#aa1d51ebf3d9acc2b776b9e132fc1e6ea" title="A new objc category class was added for an interface.">MultiplexASTMutationListener::AddedObjCCategoryToInterface</a>(</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *CatD,</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *IFD) {</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#aa1d51ebf3d9acc2b776b9e132fc1e6ea" title="A new objc category class was added for an interface.">AddedObjCCategoryToInterface</a>(CatD, IFD);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a7248a5b61437bae73de366eb29e6ddf4"> 173</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a7248a5b61437bae73de366eb29e6ddf4" title="A objc class extension redeclared or introduced a property.">MultiplexASTMutationListener::AddedObjCPropertyInClassExtension</a>(</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *Prop,</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *OrigProp,</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *ClassExt) {</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#a7248a5b61437bae73de366eb29e6ddf4" title="A objc class extension redeclared or introduced a property.">AddedObjCPropertyInClassExtension</a>(Prop, OrigProp, ClassExt);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> }</div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#af0fdf8f175b689771b15e0112cbab97b"> 180</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html#af0fdf8f175b689771b15e0112cbab97b" title="A declaration is marked used which was not previously marked used.">MultiplexASTMutationListener::DeclarationMarkedUsed</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Listeners.size(); i != e; ++i)</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> Listeners[i]-><a class="code" href="classclang_1_1MultiplexASTMutationListener.html#af0fdf8f175b689771b15e0112cbab97b" title="A declaration is marked used which was not previously marked used.">DeclarationMarkedUsed</a>(D);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> }</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#ab3ce3d95ce6a528963c439082f2ac7f1"> 188</a></span> MultiplexConsumer::MultiplexConsumer(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<ASTConsumer*></a> C)</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> : Consumers(C.begin(), C.end()),</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> MutationListener(0), DeserializationListener(0) {</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// Collect the mutation listeners and deserialization listeners of all</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// children, and create a multiplex listener each if so.</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> std::vector<ASTMutationListener*> mutationListeners;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> std::vector<ASTDeserializationListener*> serializationListeners;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <a class="code" href="classclang_1_1ASTMutationListener.html" title="An abstract interface that should be implemented by listeners that want to be notified when an AST en...">ASTMutationListener</a>* mutationListener =</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> Consumers[i]->GetASTMutationListener();</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">if</span> (mutationListener)</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> mutationListeners.push_back(mutationListener);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <a class="code" href="classclang_1_1ASTDeserializationListener.html">ASTDeserializationListener</a>* serializationListener =</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> Consumers[i]->GetASTDeserializationListener();</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">if</span> (serializationListener)</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> serializationListeners.push_back(serializationListener);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">if</span> (mutationListeners.size()) {</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> MutationListener.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1MultiplexASTMutationListener.html">MultiplexASTMutationListener</a>(mutationListeners));</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> }</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">if</span> (serializationListeners.size()) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> DeserializationListener.reset(</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1MultiplexASTDeserializationListener.html">MultiplexASTDeserializationListener</a>(serializationListeners));</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_1MultiplexConsumer.html#ac7670786878ef287737a1c43d169a6e3"> 214</a></span> <a class="code" href="classclang_1_1MultiplexConsumer.html#ac7670786878ef287737a1c43d169a6e3">MultiplexConsumer::~MultiplexConsumer</a>() {</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">delete</span> Consumers[i];</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#a8eca5f754a97d63b958dace9b5ceb371"> 219</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a8eca5f754a97d63b958dace9b5ceb371">MultiplexConsumer::Initialize</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) {</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#a8eca5f754a97d63b958dace9b5ceb371">Initialize</a>(Context);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> }</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#a609111684ad51bb43ec708b131ca2f28"> 224</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a609111684ad51bb43ec708b131ca2f28">MultiplexConsumer::HandleTopLevelDecl</a>(<a class="code" href="classclang_1_1DeclGroupRef.html">DeclGroupRef</a> D) {</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keywordtype">bool</span> Continue = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> Continue = Continue && Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#a609111684ad51bb43ec708b131ca2f28">HandleTopLevelDecl</a>(D);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">return</span> Continue;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> }</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#aa4a786b3d6f6e95bf5f8433465471101"> 231</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#aa4a786b3d6f6e95bf5f8433465471101" title="HandleCXXStaticMemberVarInstantiation - Tell the consumer that this.">MultiplexConsumer::HandleCXXStaticMemberVarInstantiation</a>(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#aa4a786b3d6f6e95bf5f8433465471101" title="HandleCXXStaticMemberVarInstantiation - Tell the consumer that this.">HandleCXXStaticMemberVarInstantiation</a>(VD);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> }</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#acdc1754fb1bb248b28b3c8180fbc9477"> 236</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#acdc1754fb1bb248b28b3c8180fbc9477">MultiplexConsumer::HandleInterestingDecl</a>(<a class="code" href="classclang_1_1DeclGroupRef.html">DeclGroupRef</a> D) {</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#acdc1754fb1bb248b28b3c8180fbc9477">HandleInterestingDecl</a>(D);</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_1MultiplexConsumer.html#a76b27c72c11b743d68535edfacf50d68"> 241</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a76b27c72c11b743d68535edfacf50d68">MultiplexConsumer::HandleTranslationUnit</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx) {</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#a76b27c72c11b743d68535edfacf50d68">HandleTranslationUnit</a>(Ctx);</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> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#a8758cc02b4d51673a4686b853aa8cf30"> 246</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a8758cc02b4d51673a4686b853aa8cf30">MultiplexConsumer::HandleTagDeclDefinition</a>(<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *D) {</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#a8758cc02b4d51673a4686b853aa8cf30">HandleTagDeclDefinition</a>(D);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> }</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#a983c52db928688a8ce6d5631d192a0ac"> 251</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a983c52db928688a8ce6d5631d192a0ac" title="Invoked when a function is implicitly instantiated. Note that at this point point it does not have a ...">MultiplexConsumer::HandleCXXImplicitFunctionInstantiation</a>(<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D){</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#a983c52db928688a8ce6d5631d192a0ac" title="Invoked when a function is implicitly instantiated. Note that at this point point it does not have a ...">HandleCXXImplicitFunctionInstantiation</a>(D);</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#a81195cbe1eec45dd846fd8a3de0ed3de"> 256</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a81195cbe1eec45dd846fd8a3de0ed3de" title="Handle the specified top-level declaration that occurred inside and ObjC container. The default implementation ignored them.">MultiplexConsumer::HandleTopLevelDeclInObjCContainer</a>(<a class="code" href="classclang_1_1DeclGroupRef.html">DeclGroupRef</a> D) {</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#a81195cbe1eec45dd846fd8a3de0ed3de" title="Handle the specified top-level declaration that occurred inside and ObjC container. The default implementation ignored them.">HandleTopLevelDeclInObjCContainer</a>(D);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> }</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#a110fafb6e6af614c1d6f498858b763b9"> 261</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a110fafb6e6af614c1d6f498858b763b9">MultiplexConsumer::CompleteTentativeDefinition</a>(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D) {</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#a110fafb6e6af614c1d6f498858b763b9">CompleteTentativeDefinition</a>(D);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> }</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#affb42abff6d3baac5a5d1af4744527a7"> 266</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#affb42abff6d3baac5a5d1af4744527a7" title="Callback involved at the end of a translation unit to notify the consumer that a vtable for the given...">MultiplexConsumer::HandleVTable</a>(</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD, <span class="keywordtype">bool</span> DefinitionRequired) {</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#affb42abff6d3baac5a5d1af4744527a7" title="Callback involved at the end of a translation unit to notify the consumer that a vtable for the given...">HandleVTable</a>(RD, DefinitionRequired);</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> }</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#a7a9f8bc1fa03dda1fdc7f3c1fc2e138b"> 272</a></span> <a class="code" href="classclang_1_1ASTMutationListener.html" title="An abstract interface that should be implemented by listeners that want to be notified when an AST en...">ASTMutationListener</a> *<a class="code" href="classclang_1_1MultiplexConsumer.html#a7a9f8bc1fa03dda1fdc7f3c1fc2e138b" title="If the consumer is interested in entities getting modified after their initial creation, it should return a pointer to an ASTMutationListener here.">MultiplexConsumer::GetASTMutationListener</a>() {</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">return</span> MutationListener.get();</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> }</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#acddae923ba948fe4cfca28c84e892395"> 276</a></span> <a class="code" href="classclang_1_1ASTDeserializationListener.html">ASTDeserializationListener</a> *<a class="code" href="classclang_1_1MultiplexConsumer.html#acddae923ba948fe4cfca28c84e892395" title="If the consumer is interested in entities being deserialized from AST files, it should return a point...">MultiplexConsumer::GetASTDeserializationListener</a>() {</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">return</span> DeserializationListener.get();</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"><a class="code" href="classclang_1_1MultiplexConsumer.html#a890b97cbd8b972d62c0af23ffd07b4b3"> 280</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a890b97cbd8b972d62c0af23ffd07b4b3" title="PrintStats - If desired, print any statistics.">MultiplexConsumer::PrintStats</a>() {</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> Consumers[i]-><a class="code" href="classclang_1_1MultiplexConsumer.html#a890b97cbd8b972d62c0af23ffd07b4b3" title="PrintStats - If desired, print any statistics.">PrintStats</a>();</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> }</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#a34734d1dc53dbad9f38f9a85179fc41d"> 285</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a34734d1dc53dbad9f38f9a85179fc41d" title="Initialize the semantic consumer with the Sema instance being used to perform semantic analysis on th...">MultiplexConsumer::InitializeSema</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="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1SemaConsumer.html" title="An abstract interface that should be implemented by clients that read ASTs and then require further s...">SemaConsumer</a> *SC = dyn_cast<SemaConsumer>(Consumers[i]))</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> SC->InitializeSema(S);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> }</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html#af988d0cdc69d325f75230bb004d77adb"> 291</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#af988d0cdc69d325f75230bb004d77adb" title="Inform the semantic consumer that Sema is no longer available.">MultiplexConsumer::ForgetSema</a>() {</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Consumers.size(); i != e; ++i)</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1SemaConsumer.html" title="An abstract interface that should be implemented by clients that read ASTs and then require further s...">SemaConsumer</a> *SC = dyn_cast<SemaConsumer>(Consumers[i]))</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> SC->ForgetSema();</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 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/MultiplexConsumer_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,259 @@
+<!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: MultiplexConsumer.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">MultiplexConsumer.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MultiplexConsumer_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/MultiplexConsumer.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> /home/tstellar/llvm/tools/clang/lib/Frontend/Release+Asserts/MultiplexConsumer.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> MultiplexConsumer.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/MultiplexConsumer.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/SemaConsumer.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTConsumer.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTMutationListener.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ASTDeserializationListener.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ASTBitCodes.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../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/Frontend/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OperatorKinds.def \</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/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="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</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="l00051"></a><span class="lineno"> 51</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Specifiers.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#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Frontend/MultiplexConsumer.h:</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Sema/SemaConsumer.h:</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTConsumer.h:</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/ASTMutationListener.h:</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ASTDeserializationListener.h:</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Serialization/ASTBitCodes.h:</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> /home/tstellar/llvm/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="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> /home/tstellar/llvm/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="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> /home/tstellar/llvm/tools/clang/lib/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="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> /home/tstellar/llvm/tools/clang/lib/Frontend/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 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/MultiplexConsumer_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexConsumer_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,141 @@
+<!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: MultiplexConsumer.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_86a50fedfdd177331e407e41b0c0394f.html">Frontend</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MultiplexConsumer.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MultiplexConsumer_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">//===-- MultiplexConsumer.h - AST Consumer for PCH Generation ---*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This file declares the MultiplexConsumer class, which can be used to</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// multiplex ASTConsumer and SemaConsumer messages to many consumers.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef CLANG_FRONTEND_MULTIPLEXCONSUMER_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span><span class="preprocessor">#define CLANG_FRONTEND_MULTIPLEXCONSUMER_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="LLVM_8h.html" title="Forward declares and imports various common LLVM datatypes that clang wants to use unqualified...">clang/Basic/LLVM.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="SemaConsumer_8h.html">clang/Sema/SemaConsumer.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <vector></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">namespace </span>clang {</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">class </span>MultiplexASTMutationListener;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">class </span>MultiplexASTDeserializationListener;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Has a list of ASTConsumers and calls each of them. Owns its children.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexConsumer.html"> 29</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1MultiplexConsumer.html">MultiplexConsumer</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1SemaConsumer.html" title="An abstract interface that should be implemented by clients that read ASTs and then require further s...">SemaConsumer</a> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// Takes ownership of the pointers in C.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#ab3ce3d95ce6a528963c439082f2ac7f1">MultiplexConsumer</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<ASTConsumer*></a> C);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#ac7670786878ef287737a1c43d169a6e3">~MultiplexConsumer</a>();</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// ASTConsumer</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a8eca5f754a97d63b958dace9b5ceb371">Initialize</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#aa4a786b3d6f6e95bf5f8433465471101" title="HandleCXXStaticMemberVarInstantiation - Tell the consumer that this.">HandleCXXStaticMemberVarInstantiation</a>(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a609111684ad51bb43ec708b131ca2f28">HandleTopLevelDecl</a>(<a class="code" href="classclang_1_1DeclGroupRef.html">DeclGroupRef</a> D);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#acdc1754fb1bb248b28b3c8180fbc9477">HandleInterestingDecl</a>(<a class="code" href="classclang_1_1DeclGroupRef.html">DeclGroupRef</a> D);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a76b27c72c11b743d68535edfacf50d68">HandleTranslationUnit</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a8758cc02b4d51673a4686b853aa8cf30">HandleTagDeclDefinition</a>(<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *D);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a983c52db928688a8ce6d5631d192a0ac" title="Invoked when a function is implicitly instantiated. Note that at this point point it does not have a ...">HandleCXXImplicitFunctionInstantiation</a>(<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a81195cbe1eec45dd846fd8a3de0ed3de" title="Handle the specified top-level declaration that occurred inside and ObjC container. The default implementation ignored them.">HandleTopLevelDeclInObjCContainer</a>(<a class="code" href="classclang_1_1DeclGroupRef.html">DeclGroupRef</a> D);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a110fafb6e6af614c1d6f498858b763b9">CompleteTentativeDefinition</a>(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#affb42abff6d3baac5a5d1af4744527a7" title="Callback involved at the end of a translation unit to notify the consumer that a vtable for the given...">HandleVTable</a>(<a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD, <span class="keywordtype">bool</span> DefinitionRequired);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ASTMutationListener.html" title="An abstract interface that should be implemented by listeners that want to be notified when an AST en...">ASTMutationListener</a> *<a class="code" href="classclang_1_1MultiplexConsumer.html#a7a9f8bc1fa03dda1fdc7f3c1fc2e138b" title="If the consumer is interested in entities getting modified after their initial creation, it should return a pointer to an ASTMutationListener here.">GetASTMutationListener</a>();</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ASTDeserializationListener.html">ASTDeserializationListener</a> *<a class="code" href="classclang_1_1MultiplexConsumer.html#acddae923ba948fe4cfca28c84e892395" title="If the consumer is interested in entities being deserialized from AST files, it should return a point...">GetASTDeserializationListener</a>();</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a890b97cbd8b972d62c0af23ffd07b4b3" title="PrintStats - If desired, print any statistics.">PrintStats</a>();</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// SemaConsumer</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#a34734d1dc53dbad9f38f9a85179fc41d" title="Initialize the semantic consumer with the Sema instance being used to perform semantic analysis on th...">InitializeSema</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="l00052"></a><span class="lineno"> 52</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexConsumer.html#af988d0cdc69d325f75230bb004d77adb" title="Inform the semantic consumer that Sema is no longer available.">ForgetSema</a>();</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> std::vector<ASTConsumer*> Consumers; <span class="comment">// Owns these.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<MultiplexASTMutationListener></a> MutationListener;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<MultiplexASTDeserializationListener></a> DeserializationListener;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> };</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 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/MultiplexExternalSemaSource_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,379 @@
+<!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: MultiplexExternalSemaSource.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c3cadfa2fbef89a3b8f57073e8a31f9.html">Sema</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MultiplexExternalSemaSource.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MultiplexExternalSemaSource_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">//===--- MultiplexExternalSemaSource.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 implements the event dispatching to the subscribed clients.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="MultiplexExternalSemaSource_8h.html">clang/Sema/MultiplexExternalSemaSource.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="DeclContextInternals_8h.html">clang/AST/DeclContextInternals.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="Lookup_8h.html">clang/Sema/Lookup.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">using namespace </span>clang;</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">///\brief Constructs a new multiplexing external sema source and appends the</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">/// given element to it.</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">///\param[in] source - An ExternalSemaSource.</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a6e955d8211732e4a02e203ee25e27c3d"> 24</a></span> <span class="comment"></span><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a6e955d8211732e4a02e203ee25e27c3d" title="Constructs a new multiplexing external sema source and appends the given element to it...">MultiplexExternalSemaSource::MultiplexExternalSemaSource</a>(<a class="code" href="classclang_1_1ExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">ExternalSemaSource</a> &s1,</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <a class="code" href="classclang_1_1ExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">ExternalSemaSource</a> &s2){</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> Sources.push_back(&s1);</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> Sources.push_back(&s2);</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> }</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// pin the vtable here.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aa549660a0f743002eef8f4dde233099d"> 31</a></span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aa549660a0f743002eef8f4dde233099d">MultiplexExternalSemaSource::~MultiplexExternalSemaSource</a>() {}</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">///\brief Appends new source to the source list.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">///\param[in] source - An ExternalSemaSource.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a10c67dab227391683bc1da4e0e0efca1"> 37</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a10c67dab227391683bc1da4e0e0efca1" title="Appends new source to the source list.">MultiplexExternalSemaSource::addSource</a>(<a class="code" href="classclang_1_1ExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">ExternalSemaSource</a> &source) {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> Sources.push_back(&source);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> }</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// ExternalASTSource.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#addd7ea5f5a24e421210a134ae9331672"> 45</a></span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#addd7ea5f5a24e421210a134ae9331672" title="Resolve a declaration ID into a declaration, potentially building a new declaration.">MultiplexExternalSemaSource::GetExternalDecl</a>(uint32_t <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Decl.html">Decl</a> *Result = Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#addd7ea5f5a24e421210a134ae9331672" title="Resolve a declaration ID into a declaration, potentially building a new declaration.">GetExternalDecl</a>(ID))</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ac68e5b14437526a4958445b0f066786d"> 52</a></span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ac68e5b14437526a4958445b0f066786d" title="Resolve a selector ID into a selector.">MultiplexExternalSemaSource::GetExternalSelector</a>(uint32_t <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i) {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> Sel = Sources[i]->GetExternalSelector(ID);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">if</span> (!Sel.<a class="code" href="classclang_1_1Selector.html#aa3d0dea4a9740ff6560f9edb7358ca96" title="Determine whether this is the empty selector.">isNull</a>())</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">return</span> Sel;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> Sel;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a00321aea08bbdd6c54308c212f884a55"> 62</a></span> uint32_t <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a00321aea08bbdd6c54308c212f884a55" title="Returns the number of selectors known to the external AST source.">MultiplexExternalSemaSource::GetNumExternalSelectors</a>() {</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> uint32_t total = 0;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> total += Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a00321aea08bbdd6c54308c212f884a55" title="Returns the number of selectors known to the external AST source.">GetNumExternalSelectors</a>();</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> total;</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"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#acca0c2dea28a0fefef34fc92eeb0e2a8"> 69</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#acca0c2dea28a0fefef34fc92eeb0e2a8" title="Resolve the offset of a statement in the decl stream into a statement.">MultiplexExternalSemaSource::GetExternalDeclStmt</a>(uint64_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>) {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Result = Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#acca0c2dea28a0fefef34fc92eeb0e2a8" title="Resolve the offset of a statement in the decl stream into a statement.">GetExternalDeclStmt</a>(Offset))</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> 0;</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_1MultiplexExternalSemaSource.html#a703f47233edf0763d527073f314e9868"> 76</a></span> <a class="code" href="classclang_1_1CXXBaseSpecifier.html" title="Represents a base class of a C++ class.">CXXBaseSpecifier</a> *<a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a703f47233edf0763d527073f314e9868" title="Resolve the offset of a set of C++ base specifiers in the decl stream into an array of specifiers...">MultiplexExternalSemaSource::GetExternalCXXBaseSpecifiers</a>(</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> uint64_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>){</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CXXBaseSpecifier.html" title="Represents a base class of a C++ class.">CXXBaseSpecifier</a> *R = Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a703f47233edf0763d527073f314e9868" title="Resolve the offset of a set of C++ base specifiers in the decl stream into an array of specifiers...">GetExternalCXXBaseSpecifiers</a>(Offset))</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">return</span> 0; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aad799c85fce11a9a24e08fbeb35a3d15" title="Find all declarations with the given name in the given context.">MultiplexExternalSemaSource::</a></div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aad799c85fce11a9a24e08fbeb35a3d15"> 85</a></span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aad799c85fce11a9a24e08fbeb35a3d15" title="Find all declarations with the given name in the given context.">FindExternalVisibleDeclsByName</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC, <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> Name) {</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">bool</span> AnyDeclsFound = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> AnyDeclsFound |= Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aad799c85fce11a9a24e08fbeb35a3d15" title="Find all declarations with the given name in the given context.">FindExternalVisibleDeclsByName</a>(DC, Name);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">return</span> AnyDeclsFound;</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> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a1f8d0df6ed1fbe725ed2520b567d308d"> 92</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a1f8d0df6ed1fbe725ed2520b567d308d" title="Ensures that the table of all visible declarations inside this context is up to date.">MultiplexExternalSemaSource::completeVisibleDeclsMap</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC){</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a1f8d0df6ed1fbe725ed2520b567d308d" title="Ensures that the table of all visible declarations inside this context is up to date.">completeVisibleDeclsMap</a>(DC);</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="namespaceclang.html#a0a601e656c5c4731007649dead1eb804" title="Enumeration describing the result of loading information from an external source.">ExternalLoadResult</a> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a90d5a24ba76a999a7544e587370a66ca" title="Finds all declarations lexically contained within the given DeclContext, after applying an optional f...">MultiplexExternalSemaSource::</a></div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a90d5a24ba76a999a7544e587370a66ca"> 98</a></span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a90d5a24ba76a999a7544e587370a66ca" title="Finds all declarations lexically contained within the given DeclContext, after applying an optional f...">FindExternalLexicalDecls</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC,</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">bool</span> (*isKindWeWant)(<a class="code" href="classclang_1_1Decl.html#a4c591bf2c0aa4f4d5f343ec665cbf196" title="Lists the kind of concrete classes of Decl.">Decl::Kind</a>),</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Decl*></a> &Result) {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// FIXME: The semantics of the return result is unclear to me...</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a90d5a24ba76a999a7544e587370a66ca" title="Finds all declarations lexically contained within the given DeclContext, after applying an optional f...">FindExternalLexicalDecls</a>(DC, isKindWeWant, Result);</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">return</span> <a class="code" href="namespaceclang.html#a0a601e656c5c4731007649dead1eb804ad19885d294356c1cca6bc967dcd1283e" title="Loading the external information has succeeded.">ELR_Success</a>;</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> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7528bae7fab87e811f9d07ca4552ec03"> 108</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7528bae7fab87e811f9d07ca4552ec03" title="Get the decls that are contained in a file in the Offset/Length range. Length can be 0 to indicate a ...">MultiplexExternalSemaSource::FindFileRegionDecls</a>(<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> File, </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>,</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">unsigned</span> Length,</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Decl *></a> &Decls){</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7528bae7fab87e811f9d07ca4552ec03" title="Get the decls that are contained in a file in the Offset/Length range. Length can be 0 to indicate a ...">FindFileRegionDecls</a>(File, Offset, Length, Decls);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a44aab449785901ff7a763eac209be9ba"> 116</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a44aab449785901ff7a763eac209be9ba" title="Gives the external AST source an opportunity to complete an incomplete type.">MultiplexExternalSemaSource::CompleteType</a>(<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *Tag) {</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a44aab449785901ff7a763eac209be9ba" title="Gives the external AST source an opportunity to complete an incomplete type.">CompleteType</a>(Tag);</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> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aff4f946f8451bfc0104ee2223bf4a1dc"> 121</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a44aab449785901ff7a763eac209be9ba" title="Gives the external AST source an opportunity to complete an incomplete type.">MultiplexExternalSemaSource::CompleteType</a>(<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class) {</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a44aab449785901ff7a763eac209be9ba" title="Gives the external AST source an opportunity to complete an incomplete type.">CompleteType</a>(Class);</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"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ad56066b8ab21e96f2dbb6bf25fba4b5e"> 126</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ad56066b8ab21e96f2dbb6bf25fba4b5e" title="Loads comment ranges.">MultiplexExternalSemaSource::ReadComments</a>() {</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ad56066b8ab21e96f2dbb6bf25fba4b5e" title="Loads comment ranges.">ReadComments</a>();</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8a40366367370e9e1ec533fa0045eb15"> 131</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8a40366367370e9e1ec533fa0045eb15" title="Notify ExternalASTSource that we started deserialization of a decl or type so until FinishedDeseriali...">MultiplexExternalSemaSource::StartedDeserializing</a>() {</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8a40366367370e9e1ec533fa0045eb15" title="Notify ExternalASTSource that we started deserialization of a decl or type so until FinishedDeseriali...">StartedDeserializing</a>();</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a196439d341a211831236ab4f5ab95727"> 136</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a196439d341a211831236ab4f5ab95727" title="Notify ExternalASTSource that we finished the deserialization of a decl or type. Must be paired with ...">MultiplexExternalSemaSource::FinishedDeserializing</a>() {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a196439d341a211831236ab4f5ab95727" title="Notify ExternalASTSource that we finished the deserialization of a decl or type. Must be paired with ...">FinishedDeserializing</a>();</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a3747ec9b642ed6c38e06b70553e0496b"> 141</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a3747ec9b642ed6c38e06b70553e0496b" title="Function that will be invoked when we begin parsing a new translation unit involving this external AS...">MultiplexExternalSemaSource::StartTranslationUnit</a>(<a class="code" href="classclang_1_1ASTConsumer.html">ASTConsumer</a> *Consumer) {</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a3747ec9b642ed6c38e06b70553e0496b" title="Function that will be invoked when we begin parsing a new translation unit involving this external AS...">StartTranslationUnit</a>(Consumer);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a14d82c2f284b93e56d7c7952c0ab2354"> 146</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a14d82c2f284b93e56d7c7952c0ab2354" title="Print any statistics that have been gathered regarding the external AST source.">MultiplexExternalSemaSource::PrintStats</a>() {</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a14d82c2f284b93e56d7c7952c0ab2354" title="Print any statistics that have been gathered regarding the external AST source.">PrintStats</a>();</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> }</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a545120593a9ca752de10a33194faa750"> 151</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a545120593a9ca752de10a33194faa750" title="Perform layout on the given record.">MultiplexExternalSemaSource::layoutRecordType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *Record,</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> uint64_t &Size, </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> uint64_t &Alignment,</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> llvm::DenseMap<const FieldDecl *, uint64_t> &FieldOffsets,</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> llvm::DenseMap<const CXXRecordDecl *, CharUnits> &BaseOffsets,</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> llvm::DenseMap<const CXXRecordDecl *, CharUnits> &VirtualBaseOffsets){</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">if</span> (Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a545120593a9ca752de10a33194faa750" title="Perform layout on the given record.">layoutRecordType</a>(Record, Size, Alignment, FieldOffsets, </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> BaseOffsets, VirtualBaseOffsets))</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> <span class="keyword">false</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> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ExternalASTSource.html#a231aa213619de95327e5540a4418b582">MultiplexExternalSemaSource::</a></div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a2db7511c1658ecd947ea61ad601d1557"> 165</a></span> <a class="code" href="classclang_1_1ExternalASTSource.html#a231aa213619de95327e5540a4418b582">getMemoryBufferSizes</a>(<a class="code" href="structclang_1_1ExternalASTSource_1_1MemoryBufferSizes.html">MemoryBufferSizes</a> &sizes)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> Sources[i]-><a class="code" href="classclang_1_1ExternalASTSource.html#a231aa213619de95327e5540a4418b582">getMemoryBufferSizes</a>(sizes);</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"> 170</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">// ExternalSemaSource.</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> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a324c8ed907d750661f28f13801824279"> 176</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a324c8ed907d750661f28f13801824279" title="Initialize the semantic source with the Sema instance being used to perform semantic analysis on the ...">MultiplexExternalSemaSource::InitializeSema</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="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a324c8ed907d750661f28f13801824279" title="Initialize the semantic source with the Sema instance being used to perform semantic analysis on the ...">InitializeSema</a>(S);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> }</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a0047106357d22f39229656e7e0e8bf7a"> 181</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a0047106357d22f39229656e7e0e8bf7a" title="Inform the semantic consumer that Sema is no longer available.">MultiplexExternalSemaSource::ForgetSema</a>() {</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a0047106357d22f39229656e7e0e8bf7a" title="Inform the semantic consumer that Sema is no longer available.">ForgetSema</a>();</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> }</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a18173c1847c9f4d75f180d1abd259e95"> 186</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a18173c1847c9f4d75f180d1abd259e95" title="Load the contents of the global method pool for a given selector.">MultiplexExternalSemaSource::ReadMethodPool</a>(<a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel) {</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a18173c1847c9f4d75f180d1abd259e95" title="Load the contents of the global method pool for a given selector.">ReadMethodPool</a>(Sel);</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> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7ef9535198415848e53b2ca4fb259b36"> 191</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7ef9535198415848e53b2ca4fb259b36" title="Load the set of namespaces that are known to the external source, which will be used during typo corr...">MultiplexExternalSemaSource::ReadKnownNamespaces</a>(</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<NamespaceDecl*></a> &Namespaces){</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7ef9535198415848e53b2ca4fb259b36" title="Load the set of namespaces that are known to the external source, which will be used during typo corr...">ReadKnownNamespaces</a>(Namespaces);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a42b12a6591ee8f4f830d0b3a271cf8a2"> 197</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a42b12a6591ee8f4f830d0b3a271cf8a2" title="Load the set of used but not defined functions or variables with internal linkage, or used but not defined inline functions.">MultiplexExternalSemaSource::ReadUndefinedButUsed</a>(</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> llvm::DenseMap<NamedDecl*, SourceLocation> &Undefined){</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a42b12a6591ee8f4f830d0b3a271cf8a2" title="Load the set of used but not defined functions or variables with internal linkage, or used but not defined inline functions.">ReadUndefinedButUsed</a>(Undefined);</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"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a60757ea1a9beb757de14f8824a080480"> 203</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a60757ea1a9beb757de14f8824a080480" title="Do last resort, unqualified lookup on a LookupResult that Sema cannot find.">MultiplexExternalSemaSource::LookupUnqualified</a>(<a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R, <a class="code" href="classclang_1_1Scope.html">Scope</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>){ </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a60757ea1a9beb757de14f8824a080480" title="Do last resort, unqualified lookup on a LookupResult that Sema cannot find.">LookupUnqualified</a>(R, S);</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">return</span> !R.<a class="code" href="classclang_1_1LookupResult.html#a9f44c1cd9d9c7e84dd0202538dd72cd7" title="Return true if no decls were found.">empty</a>();</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> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8f56762c49a224404ebdad2a21fce5a0"> 210</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8f56762c49a224404ebdad2a21fce5a0" title="Read the set of tentative definitions known to the external Sema source.">MultiplexExternalSemaSource::ReadTentativeDefinitions</a>(</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<VarDecl*></a> &TentativeDefs) {</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8f56762c49a224404ebdad2a21fce5a0" title="Read the set of tentative definitions known to the external Sema source.">ReadTentativeDefinitions</a>(TentativeDefs);</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> }</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a2b368f617adc970c46f5608b998ef0ee"> 216</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a2b368f617adc970c46f5608b998ef0ee" title="Read the set of unused file-scope declarations known to the external Sema source.">MultiplexExternalSemaSource::ReadUnusedFileScopedDecls</a>(</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<const DeclaratorDecl*></a> &Decls) {</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a2b368f617adc970c46f5608b998ef0ee" title="Read the set of unused file-scope declarations known to the external Sema source.">ReadUnusedFileScopedDecls</a>(Decls);</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> </div>
+<div class="line"><a name="l00222"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aece03284f7690c3973fcea9a170d9887"> 222</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aece03284f7690c3973fcea9a170d9887" title="Read the set of delegating constructors known to the external Sema source.">MultiplexExternalSemaSource::ReadDelegatingConstructors</a>(</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<CXXConstructorDecl*></a> &Decls) {</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aece03284f7690c3973fcea9a170d9887" title="Read the set of delegating constructors known to the external Sema source.">ReadDelegatingConstructors</a>(Decls);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> }</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a638a74286fadf95f7cb1dca06e749613"> 228</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a638a74286fadf95f7cb1dca06e749613" title="Read the set of ext_vector type declarations known to the external Sema source.">MultiplexExternalSemaSource::ReadExtVectorDecls</a>(</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<TypedefNameDecl*></a> &Decls) {</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a638a74286fadf95f7cb1dca06e749613" title="Read the set of ext_vector type declarations known to the external Sema source.">ReadExtVectorDecls</a>(Decls);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> }</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a29886b80efcc6b9830b2459bfe69fddb"> 234</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a29886b80efcc6b9830b2459bfe69fddb" title="Read the set of dynamic classes known to the external Sema source.">MultiplexExternalSemaSource::ReadDynamicClasses</a>(</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<CXXRecordDecl*></a> &Decls) {</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a29886b80efcc6b9830b2459bfe69fddb" title="Read the set of dynamic classes known to the external Sema source.">ReadDynamicClasses</a>(Decls);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> }</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8063aba9c16428c8e0ed24015cb0a3b8"> 240</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8063aba9c16428c8e0ed24015cb0a3b8" title="Read the set of locally-scoped extern "C" declarations known to the external Sema source...">MultiplexExternalSemaSource::ReadLocallyScopedExternCDecls</a>(</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<NamedDecl*></a> &Decls) {</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8063aba9c16428c8e0ed24015cb0a3b8" title="Read the set of locally-scoped extern "C" declarations known to the external Sema source...">ReadLocallyScopedExternCDecls</a>(Decls);</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> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#acd9b996dbea6d362b6261927d9165566"> 246</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#acd9b996dbea6d362b6261927d9165566" title="Read the set of referenced selectors known to the external Sema source.">MultiplexExternalSemaSource::ReadReferencedSelectors</a>(</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a><std::pair<Selector, SourceLocation> > &Sels) {</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#acd9b996dbea6d362b6261927d9165566" title="Read the set of referenced selectors known to the external Sema source.">ReadReferencedSelectors</a>(Sels);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> }</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ab404a1b9c89dce24e3e1bb0ff990c9b7"> 252</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ab404a1b9c89dce24e3e1bb0ff990c9b7" title="Read the set of weak, undeclared identifiers known to the external Sema source.">MultiplexExternalSemaSource::ReadWeakUndeclaredIdentifiers</a>(</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a><std::pair<IdentifierInfo*, WeakInfo> > &WI) {</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ab404a1b9c89dce24e3e1bb0ff990c9b7" title="Read the set of weak, undeclared identifiers known to the external Sema source.">ReadWeakUndeclaredIdentifiers</a>(WI);</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"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#adadc0d56ad0c23cf9010f8ea8b0bc7a4"> 258</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#adadc0d56ad0c23cf9010f8ea8b0bc7a4" title="Read the set of used vtables known to the external Sema source.">MultiplexExternalSemaSource::ReadUsedVTables</a>(</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<ExternalVTableUse></a> &VTables) {</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#adadc0d56ad0c23cf9010f8ea8b0bc7a4" title="Read the set of used vtables known to the external Sema source.">ReadUsedVTables</a>(VTables);</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"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ab858e78e0c7236801ce36b819bfab1cd"> 264</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ab858e78e0c7236801ce36b819bfab1cd" title="Read the set of pending instantiations known to the external Sema source.">MultiplexExternalSemaSource::ReadPendingInstantiations</a>(</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a><std::pair<<a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a>*,</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</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>> > &Pending) {</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ab858e78e0c7236801ce36b819bfab1cd" title="Read the set of pending instantiations known to the external Sema source.">ReadPendingInstantiations</a>(Pending);</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> </div>
+<div class="line"><a name="l00271"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a3e0859e94cafccf94fa74098026c6c7f"> 271</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a3e0859e94cafccf94fa74098026c6c7f" title="Read the set of late parsed template functions for this source.">MultiplexExternalSemaSource::ReadLateParsedTemplates</a>(</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> llvm::DenseMap<const FunctionDecl *, LateParsedTemplate *> &LPTMap) {</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < Sources.size(); ++i)</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> Sources[i]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a3e0859e94cafccf94fa74098026c6c7f" title="Read the set of late parsed template functions for this source.">ReadLateParsedTemplates</a>(LPTMap);</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> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a79625aa6cddc9d6f91ff29d080b66c50"> 277</a></span> <a class="code" href="classclang_1_1TypoCorrection.html" title="Simple class containing the result of Sema::CorrectTypo.">TypoCorrection</a> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a79625aa6cddc9d6f91ff29d080b66c50" title="Try to "correct" a typo in the source code by finding visible declarations whose names are similar to...">MultiplexExternalSemaSource::CorrectTypo</a>(</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &<a class="code" href="CommentSema_8cpp.html#ace01d1978435b977e8a71c3196358cc1">Typo</a>,</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="keywordtype">int</span> LookupKind, <a class="code" href="classclang_1_1Scope.html">Scope</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> *SS,</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <a class="code" href="classclang_1_1CorrectionCandidateCallback.html" title="Base class for callback objects used by Sema::CorrectTypo to check the validity of a potential typo c...">CorrectionCandidateCallback</a> &CCC,</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *MemberContext,</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keywordtype">bool</span> EnteringContext,</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *OPT) {</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> I = 0, E = Sources.size(); I < E; ++I) {</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypoCorrection.html" title="Simple class containing the result of Sema::CorrectTypo.">TypoCorrection</a> C = Sources[I]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a79625aa6cddc9d6f91ff29d080b66c50" title="Try to "correct" a typo in the source code by finding visible declarations whose names are similar to...">CorrectTypo</a>(Typo, LookupKind, S, SS, CCC,</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> MemberContext,</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> EnteringContext, OPT))</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">return</span> C;</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="keywordflow">return</span> <a class="code" href="classclang_1_1TypoCorrection.html" title="Simple class containing the result of Sema::CorrectTypo.">TypoCorrection</a>();</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> }</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aac967e66bc19e0085fa13a19e1176493"> 293</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aac967e66bc19e0085fa13a19e1176493" title="Produces a diagnostic note if one of the attached sources contains a complete definition for T...">MultiplexExternalSemaSource::MaybeDiagnoseMissingCompleteType</a>(</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, <a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> I = 0, E = Sources.size(); I < E; ++I) {</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">if</span> (Sources[I]-><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aac967e66bc19e0085fa13a19e1176493" title="Produces a diagnostic note if one of the attached sources contains a complete definition for T...">MaybeDiagnoseMissingCompleteType</a>(Loc, T))</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> }</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 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/MultiplexExternalSemaSource_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,493 @@
+<!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: MultiplexExternalSemaSource.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c3cadfa2fbef89a3b8f57073e8a31f9.html">Sema</a></li><li class="navelem"><a class="el" href="dir_eb0099ce9b4bd055698282f76081f892.html">Release+Asserts</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MultiplexExternalSemaSource.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MultiplexExternalSemaSource_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> /home/tstellar/llvm/tools/clang/lib/Sema/Release+Asserts/MultiplexExternalSemaSource.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> /home/tstellar/llvm/tools/clang/lib/Sema/Release+Asserts/MultiplexExternalSemaSource.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> MultiplexExternalSemaSource.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/MultiplexExternalSemaSource.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.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/Support/type_traits.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.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/SwapByteOrder.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<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="l00056"></a><span class="lineno"> 56</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclContextInternals.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Lookup.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> /home/tstellar/llvm/include/llvm/Support/SMLoc.h</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/MultiplexExternalSemaSource.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ExternalSemaSource.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<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="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<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="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/TypoCorrection.h:</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/DeclSpec.h:</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<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="l00327"></a><span class="lineno"> 327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TemplateKinds.h:</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttributeList.h:</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Ownership.h:</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttrParsedAttrList.inc:</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Weak.h:</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h:</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclContextInternals.h:</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Lookup.h:</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Sema.h:</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/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="l00363"></a><span class="lineno"> 363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/MangleNumberingContext.h:</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NSAPI.h:</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.h:</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.def:</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AnalysisBasedWarnings.h:</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/IdentifierResolver.h:</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/LocInfoType.h:</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ObjCMethodList.h:</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ScopeInfo.h:</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h:</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h:</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h:</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> /home/tstellar/llvm/include/llvm/Support/SMLoc.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 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/MultiplexExternalSemaSource_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MultiplexExternalSemaSource_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,441 @@
+<!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: MultiplexExternalSemaSource.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_d527ffe6334522956bc19a2da6aab47c.html">Sema</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MultiplexExternalSemaSource.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MultiplexExternalSemaSource_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">//===--- MultiplexExternalSemaSource.h - External Sema Interface-*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// This file defines ExternalSemaSource interface, dispatching to all clients</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef LLVM_CLANG_SEMA_MULTIPLEX_EXTERNAL_SEMA_SOURCE_H</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_SEMA_MULTIPLEX_EXTERNAL_SEMA_SOURCE_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="ExternalSemaSource_8h.html">clang/Sema/ExternalSemaSource.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="Weak_8h.html">clang/Sema/Weak.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <utility></span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span>clang {</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">class </span>CXXConstructorDecl;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">class </span>CXXRecordDecl;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">class </span>DeclaratorDecl;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">struct </span>ExternalVTableUse;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">class </span>LookupResult;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">class </span>NamespaceDecl;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">class </span>Scope;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">class </span>Sema;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">class </span>TypedefNameDecl;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">class </span>ValueDecl;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">class </span>VarDecl;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"></span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">/// \brief An abstract interface that should be implemented by</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">/// external AST sources that also provide information for semantic</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">/// analysis.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html"> 39</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">MultiplexExternalSemaSource</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">ExternalSemaSource</a> {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ExternalSemaSource *, 2></a> Sources; <span class="comment">// doesn't own them.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">public</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"> ///\brief Constructs a new multiplexing external sema source and appends the</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> /// given element to it.</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"> ///\param[in] s1 - A non-null (old) ExternalSemaSource.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> ///\param[in] s2 - A non-null (new) ExternalSemaSource.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"></span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a6e955d8211732e4a02e203ee25e27c3d" title="Constructs a new multiplexing external sema source and appends the given element to it...">MultiplexExternalSemaSource</a>(<a class="code" href="classclang_1_1ExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">ExternalSemaSource</a>& s1, <a class="code" href="classclang_1_1ExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">ExternalSemaSource</a>& s2);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aa549660a0f743002eef8f4dde233099d">~MultiplexExternalSemaSource</a>();</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"></span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> ///\brief Appends new source to the source list.</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"> ///\param[in] source - An ExternalSemaSource.</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"></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a10c67dab227391683bc1da4e0e0efca1" title="Appends new source to the source list.">addSource</a>(<a class="code" href="classclang_1_1ExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">ExternalSemaSource</a> &source);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// ExternalASTSource.</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"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> /// \brief Resolve a declaration ID into a declaration, potentially</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> /// building a new declaration.</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#addd7ea5f5a24e421210a134ae9331672" title="Resolve a declaration ID into a declaration, potentially building a new declaration.">GetExternalDecl</a>(uint32_t <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> /// \brief Resolve a selector ID into a selector.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ac68e5b14437526a4958445b0f066786d" title="Resolve a selector ID into a selector.">GetExternalSelector</a>(uint32_t ID);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"></span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> /// \brief Returns the number of selectors known to the external AST</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> /// source.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"></span> <span class="keyword">virtual</span> uint32_t <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a00321aea08bbdd6c54308c212f884a55" title="Returns the number of selectors known to the external AST source.">GetNumExternalSelectors</a>();</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"></span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> /// \brief Resolve the offset of a statement in the decl stream into</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> /// a statement.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#acca0c2dea28a0fefef34fc92eeb0e2a8" title="Resolve the offset of a statement in the decl stream into a statement.">GetExternalDeclStmt</a>(uint64_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"></span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"> /// \brief Resolve the offset of a set of C++ base specifiers in the decl</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment"> /// stream into an array of specifiers.</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1CXXBaseSpecifier.html" title="Represents a base class of a C++ class.">CXXBaseSpecifier</a> *<a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a703f47233edf0763d527073f314e9868" title="Resolve the offset of a set of C++ base specifiers in the decl stream into an array of specifiers...">GetExternalCXXBaseSpecifiers</a>(uint64_t Offset);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"></span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"> /// \brief Find all declarations with the given name in the</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"> /// given context.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aad799c85fce11a9a24e08fbeb35a3d15" title="Find all declarations with the given name in the given context.">FindExternalVisibleDeclsByName</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC, <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> Name);</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 Ensures that the table of all visible declarations inside this</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"> /// context is up to date.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a1f8d0df6ed1fbe725ed2520b567d308d" title="Ensures that the table of all visible declarations inside this context is up to date.">completeVisibleDeclsMap</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"></span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"> /// \brief Finds all declarations lexically contained within the given</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"> /// DeclContext, after applying an optional filter predicate.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> /// \param isKindWeWant a predicate function that returns true if the passed</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> /// declaration kind is one we are looking for. If NULL, all declarations</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> /// are returned.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> /// \return an indication of whether the load succeeded or failed.</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="namespaceclang.html#a0a601e656c5c4731007649dead1eb804" title="Enumeration describing the result of loading information from an external source.">ExternalLoadResult</a> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a90d5a24ba76a999a7544e587370a66ca" title="Finds all declarations lexically contained within the given DeclContext, after applying an optional f...">FindExternalLexicalDecls</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC,</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">bool</span> (*isKindWeWant)(<a class="code" href="classclang_1_1Decl.html#a4c591bf2c0aa4f4d5f343ec665cbf196" title="Lists the kind of concrete classes of Decl.">Decl::Kind</a>),</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Decl*></a> &Result);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"></span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> /// \brief Finds all declarations lexically contained within the given</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> /// DeclContext.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> /// \return true if an error occurred</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a98a8e8aac789dc4ff9b44fafbb286bc2"> 110</a></span> <span class="comment"></span> <a class="code" href="namespaceclang.html#a0a601e656c5c4731007649dead1eb804" title="Enumeration describing the result of loading information from an external source.">ExternalLoadResult</a> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a90d5a24ba76a999a7544e587370a66ca" title="Finds all declarations lexically contained within the given DeclContext, after applying an optional f...">FindExternalLexicalDecls</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC,</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Decl*></a> &Result) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a90d5a24ba76a999a7544e587370a66ca" title="Finds all declarations lexically contained within the given DeclContext, after applying an optional f...">FindExternalLexicalDecls</a>(DC, 0, Result);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">template</span> <<span class="keyword">typename</span> DeclTy></div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a4ad82723ba35af16a1eda1a9e3663f8c"> 116</a></span> <a class="code" href="namespaceclang.html#a0a601e656c5c4731007649dead1eb804" title="Enumeration describing the result of loading information from an external source.">ExternalLoadResult</a> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a4ad82723ba35af16a1eda1a9e3663f8c">FindExternalLexicalDeclsBy</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Decl*></a> &Result) {</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a90d5a24ba76a999a7544e587370a66ca" title="Finds all declarations lexically contained within the given DeclContext, after applying an optional f...">FindExternalLexicalDecls</a>(DC, DeclTy::classofKind, Result);</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"> /// \brief Get the decls that are contained in a file in the Offset/Length</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> /// range. \p Length can be 0 to indicate a point at \p Offset instead of</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment"> /// a range. </span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7528bae7fab87e811f9d07ca4552ec03" title="Get the decls that are contained in a file in the Offset/Length range. Length can be 0 to indicate a ...">FindFileRegionDecls</a>(<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> File, <span class="keywordtype">unsigned</span> Offset,<span class="keywordtype">unsigned</span> Length,</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Decl *></a> &Decls);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"></span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment"> /// \brief Gives the external AST source an opportunity to complete</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> /// an incomplete type.</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a44aab449785901ff7a763eac209be9ba" title="Gives the external AST source an opportunity to complete an incomplete type.">CompleteType</a>(<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *Tag);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"></span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"> /// \brief Gives the external AST source an opportunity to complete an</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"> /// incomplete Objective-C class.</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"> /// This routine will only be invoked if the "externally completed" bit is</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"> /// set on the ObjCInterfaceDecl via the function </span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"> /// \c ObjCInterfaceDecl::setExternallyCompleted().</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a44aab449785901ff7a763eac209be9ba" title="Gives the external AST source an opportunity to complete an incomplete type.">CompleteType</a>(<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"></span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> /// \brief Loads comment ranges.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ad56066b8ab21e96f2dbb6bf25fba4b5e" title="Loads comment ranges.">ReadComments</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 Notify ExternalASTSource that we started deserialization of</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"> /// a decl or type so until FinishedDeserializing is called there may be</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"> /// decls that are initializing. Must be paired with FinishedDeserializing.</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8a40366367370e9e1ec533fa0045eb15" title="Notify ExternalASTSource that we started deserialization of a decl or type so until FinishedDeseriali...">StartedDeserializing</a>();</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment"></span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment"> /// \brief Notify ExternalASTSource that we finished the deserialization of</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"> /// a decl or type. Must be paired with StartedDeserializing.</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a196439d341a211831236ab4f5ab95727" title="Notify ExternalASTSource that we finished the deserialization of a decl or type. Must be paired with ...">FinishedDeserializing</a>();</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"> /// \brief Function that will be invoked when we begin parsing a new</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment"> /// translation unit involving this external AST source.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a3747ec9b642ed6c38e06b70553e0496b" 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_1ASTConsumer.html">ASTConsumer</a> *Consumer);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment"></span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment"> /// \brief Print any statistics that have been gathered regarding</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment"> /// the external AST source.</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a14d82c2f284b93e56d7c7952c0ab2354" title="Print any statistics that have been gathered regarding the external AST source.">PrintStats</a>();</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment"></span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"> /// \brief Perform layout on the given record.</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment"> /// This routine allows the external AST source to provide an specific </span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment"> /// layout for a record, overriding the layout that would normally be</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"> /// constructed. It is intended for clients who receive specific layout</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment"> /// details rather than source code (such as LLDB). The client is expected</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment"> /// to fill in the field offsets, base offsets, virtual base offsets, and</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment"> /// complete object size.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment"> /// \param Record The record whose layout is being requested.</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"> /// \param Size The final size of the record, in bits.</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"> /// \param Alignment The final alignment of the record, in bits.</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 FieldOffsets The offset of each of the fields within the record,</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment"> /// expressed in bits. All of the fields must be provided with offsets.</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment"> /// \param BaseOffsets The offset of each of the direct, non-virtual base</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment"> /// classes. If any bases are not given offsets, the bases will be laid </span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment"> /// out according to the ABI.</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment"> /// \param VirtualBaseOffsets The offset of each of the virtual base classes</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment"> /// (either direct or not). If any bases are not given offsets, the bases will </span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment"> /// be laid out according to the ABI.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment"> /// </span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment"> /// \returns true if the record layout was provided, false otherwise.</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a545120593a9ca752de10a33194faa750" title="Perform layout on the given record.">layoutRecordType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *Record,</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> uint64_t &Size, uint64_t &Alignment,</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> llvm::DenseMap<const FieldDecl *, uint64_t> &FieldOffsets,</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> llvm::DenseMap<const CXXRecordDecl *, CharUnits> &BaseOffsets,</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> llvm::DenseMap<const CXXRecordDecl *, CharUnits> &VirtualBaseOffsets);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"></span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"> /// Return the amount of memory used by memory buffers, breaking down</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> /// by heap-backed versus mmap'ed memory.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ExternalASTSource.html#a231aa213619de95327e5540a4418b582">getMemoryBufferSizes</a>(MemoryBufferSizes &sizes) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">// ExternalSemaSource.</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"></span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment"> /// \brief Initialize the semantic source with the Sema instance</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment"> /// being used to perform semantic analysis on the abstract syntax</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment"> /// tree.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a324c8ed907d750661f28f13801824279" 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_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="l00206"></a><span class="lineno"> 206</span> <span class="comment"></span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment"> /// \brief Inform the semantic consumer that Sema is no longer available.</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a0047106357d22f39229656e7e0e8bf7a" title="Inform the semantic consumer that Sema is no longer available.">ForgetSema</a>();</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment"></span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment"> /// \brief Load the contents of the global method pool for a given</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment"> /// selector.</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a18173c1847c9f4d75f180d1abd259e95" title="Load the contents of the global method pool for a given selector.">ReadMethodPool</a>(<a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment"></span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment"> /// \brief Load the set of namespaces that are known to the external source,</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment"> /// which will be used during typo correction.</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7ef9535198415848e53b2ca4fb259b36" title="Load the set of namespaces that are known to the external source, which will be used during typo corr...">ReadKnownNamespaces</a>(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<NamespaceDecl*></a> &Namespaces);</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment"></span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment"> /// \brief Load the set of used but not defined functions or variables with</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment"> /// internal linkage, or used but not defined inline functions.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a42b12a6591ee8f4f830d0b3a271cf8a2" title="Load the set of used but not defined functions or variables with internal linkage, or used but not defined inline functions.">ReadUndefinedButUsed</a>(</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> llvm::DenseMap<NamedDecl*, SourceLocation> &Undefined);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment"></span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment"> /// \brief Do last resort, unqualified lookup on a LookupResult that</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment"> /// Sema cannot find.</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment"> /// \param R a LookupResult that is being recovered.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment"> /// \param S the Scope of the identifier occurrence.</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment"> /// \return true to tell Sema to recover using the LookupResult.</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a60757ea1a9beb757de14f8824a080480" title="Do last resort, unqualified lookup on a LookupResult that Sema cannot find.">LookupUnqualified</a>(<a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R, <a class="code" href="classclang_1_1Scope.html">Scope</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment"></span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment"> /// \brief Read the set of tentative definitions known to the external Sema</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment"> /// source.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment"> /// The external source should append its own tentative definitions to the</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment"> /// given vector of tentative definitions. Note that this routine may be</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment"> /// invoked multiple times; the external source should take care not to</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment"> /// introduce the same declarations repeatedly.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8f56762c49a224404ebdad2a21fce5a0" title="Read the set of tentative definitions known to the external Sema source.">ReadTentativeDefinitions</a>(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<VarDecl*></a> &Defs);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment"></span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment"> /// \brief Read the set of unused file-scope declarations known to the</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment"> /// external Sema source.</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment"> /// The external source should append its own unused, filed-scope to the</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment"> /// given vector of declarations. Note that this routine may be</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment"> /// invoked multiple times; the external source should take care not to</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment"> /// introduce the same declarations repeatedly.</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a2b368f617adc970c46f5608b998ef0ee" title="Read the set of unused file-scope declarations known to the external Sema source.">ReadUnusedFileScopedDecls</a>(</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<const DeclaratorDecl*></a> &Decls);</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment"></span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="comment"> /// \brief Read the set of delegating constructors known to the</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="comment"> /// external Sema source.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment"> /// The external source should append its own delegating constructors to the</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="comment"> /// given vector of declarations. Note that this routine may be</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment"> /// invoked multiple times; the external source should take care not to</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment"> /// introduce the same declarations repeatedly.</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aece03284f7690c3973fcea9a170d9887" title="Read the set of delegating constructors known to the external Sema source.">ReadDelegatingConstructors</a>(</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<CXXConstructorDecl*></a> &Decls);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment"></span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment"> /// \brief Read the set of ext_vector type declarations known to the</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment"> /// external Sema source.</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment"> /// The external source should append its own ext_vector type declarations to</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment"> /// the given vector of declarations. Note that this routine may be</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment"> /// invoked multiple times; the external source should take care not to</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment"> /// introduce the same declarations repeatedly.</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a638a74286fadf95f7cb1dca06e749613" title="Read the set of ext_vector type declarations known to the external Sema source.">ReadExtVectorDecls</a>(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<TypedefNameDecl*></a> &Decls);</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment"></span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment"> /// \brief Read the set of dynamic classes known to the external Sema source.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment"> /// The external source should append its own dynamic classes to</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment"> /// the given vector of declarations. Note that this routine may be</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="comment"> /// invoked multiple times; the external source should take care not to</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment"> /// introduce the same declarations repeatedly.</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a29886b80efcc6b9830b2459bfe69fddb" title="Read the set of dynamic classes known to the external Sema source.">ReadDynamicClasses</a>(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<CXXRecordDecl*></a> &Decls);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment"></span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment"> /// \brief Read the set of locally-scoped extern "C" declarations known to the</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment"> /// external Sema source.</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment"> /// The external source should append its own locally-scoped external</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="comment"> /// declarations to the given vector of declarations. Note that this routine</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment"> /// may be invoked multiple times; the external source should take care not</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment"> /// to introduce the same declarations repeatedly.</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a8063aba9c16428c8e0ed24015cb0a3b8" title="Read the set of locally-scoped extern "C" declarations known to the external Sema source...">ReadLocallyScopedExternCDecls</a>(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<NamedDecl*></a>&Decls);</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="comment"></span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="comment"> /// \brief Read the set of referenced selectors known to the</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment"> /// external Sema source.</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment"> /// The external source should append its own referenced selectors to the </span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="comment"> /// given vector of selectors. Note that this routine </span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment"> /// may be invoked multiple times; the external source should take care not </span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment"> /// to introduce the same selectors repeatedly.</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#acd9b996dbea6d362b6261927d9165566" title="Read the set of referenced selectors known to the external Sema source.">ReadReferencedSelectors</a>(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a><std::pair<<a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a>, </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</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>> > &Sels);</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment"></span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="comment"> /// \brief Read the set of weak, undeclared identifiers known to the</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment"> /// external Sema source.</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="comment"> /// The external source should append its own weak, undeclared identifiers to</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="comment"> /// the given vector. Note that this routine may be invoked multiple times; </span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="comment"> /// the external source should take care not to introduce the same identifiers</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment"> /// repeatedly.</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ab404a1b9c89dce24e3e1bb0ff990c9b7" title="Read the set of weak, undeclared identifiers known to the external Sema source.">ReadWeakUndeclaredIdentifiers</a>(</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a><std::pair<IdentifierInfo*, WeakInfo> > &WI);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment"></span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="comment"> /// \brief Read the set of used vtables known to the external Sema source.</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment"> /// The external source should append its own used vtables to the given</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment"> /// vector. Note that this routine may be invoked multiple times; the external</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment"> /// source should take care not to introduce the same vtables repeatedly.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#adadc0d56ad0c23cf9010f8ea8b0bc7a4" title="Read the set of used vtables known to the external Sema source.">ReadUsedVTables</a>(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<ExternalVTableUse></a> &VTables);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment"></span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment"> /// \brief Read the set of pending instantiations known to the external</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment"> /// Sema source.</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment"> /// The external source should append its own pending instantiations to the</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment"> /// given vector. Note that this routine may be invoked multiple times; the</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="comment"> /// external source should take care not to introduce the same instantiations</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="comment"> /// repeatedly.</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#ab858e78e0c7236801ce36b819bfab1cd" title="Read the set of pending instantiations known to the external Sema source.">ReadPendingInstantiations</a>(</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl</a><std::pair<ValueDecl*, SourceLocation> >& Pending);</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment"></span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment"> /// \brief Read the set of late parsed template functions for this source.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment"> /// The external source should insert its own late parsed template functions</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment"> /// into the map. Note that this routine may be invoked multiple times; the</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="comment"> /// external source should take care not to introduce the same map entries</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment"> /// repeatedly.</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a3e0859e94cafccf94fa74098026c6c7f" title="Read the set of late parsed template functions for this source.">ReadLateParsedTemplates</a>(</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> llvm::DenseMap<const FunctionDecl *, LateParsedTemplate *> &LPTMap);</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment"></span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment"> /// \copydoc ExternalSemaSource::CorrectTypo</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment"> /// \note Returns the first nonempty correction.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1TypoCorrection.html" title="Simple class containing the result of Sema::CorrectTypo.">TypoCorrection</a> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a79625aa6cddc9d6f91ff29d080b66c50" title="Try to "correct" a typo in the source code by finding visible declarations whose names are similar to...">CorrectTypo</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &<a class="code" href="CommentSema_8cpp.html#ace01d1978435b977e8a71c3196358cc1">Typo</a>,</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keywordtype">int</span> LookupKind, <a class="code" href="classclang_1_1Scope.html">Scope</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> *SS,</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <a class="code" href="classclang_1_1CorrectionCandidateCallback.html" title="Base class for callback objects used by Sema::CorrectTypo to check the validity of a potential typo c...">CorrectionCandidateCallback</a> &CCC,</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *MemberContext,</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keywordtype">bool</span> EnteringContext,</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *OPT);</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment"></span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment"> /// \brief Produces a diagnostic note if one of the attached sources</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment"> /// contains a complete definition for \p T. Queries the sources in list</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="comment"> /// order until the first one claims that a diagnostic was produced.</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="comment"> /// \param Loc the location at which a complete type was required but not</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment"> /// provided</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="comment"> /// \param T the \c QualType that should have been complete at \p Loc</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment"> /// \return true if a diagnostic was produced, false otherwise.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#aac967e66bc19e0085fa13a19e1176493" title="Produces a diagnostic note if one of the attached sources contains a complete definition for T...">MaybeDiagnoseMissingCompleteType</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> Loc, <a class="code" href="classclang_1_1QualType.html">QualType</a> T);</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">// isa/cast/dyn_cast support</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"><a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7e2dd5b7a180459df5473dba3487a953"> 356</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html#a7e2dd5b7a180459df5473dba3487a953">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1MultiplexExternalSemaSource.html" title="An abstract interface that should be implemented by external AST sources that also provide informatio...">MultiplexExternalSemaSource</a>*) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="comment">//static bool classof(const ExternalSemaSource*) { return true; }</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> }; </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor">#endif // LLVM_CLANG_SEMA_MULTIPLEX_EXTERNAL_SEMA_SOURCE_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:44 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more
+information.</p>
+</body>
+</html>
More information about the llvm-commits
mailing list