[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/PPConditionalDirectiveRecord_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPConditionalDirectiveRecord_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPConditionalDirectiveRecord_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPConditionalDirectiveRecord_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,262 @@
+<!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: PPConditionalDirectiveRecord.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">PPConditionalDirectiveRecord.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPConditionalDirectiveRecord_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/PPConditionalDirectiveRecord.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/PPConditionalDirectiveRecord.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> PPConditionalDirectiveRecord.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>/PPConditionalDirectiveRecord.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/SourceLocation.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/LLVM.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</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>/PPCallbacks.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</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="l00016"></a><span class="lineno"> 16</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</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="l00020"></a><span class="lineno"> 20</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="l00021"></a><span class="lineno"> 21</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="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/FileSystemOptions.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/include/llvm-c/Core.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/LangOptions.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</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="l00048"></a><span class="lineno"> 48</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="l00049"></a><span class="lineno"> 49</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="l00050"></a><span class="lineno"> 50</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</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="l00053"></a><span class="lineno"> 53</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="l00054"></a><span class="lineno"> 54</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="l00055"></a><span class="lineno"> 55</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="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/OpenCLExtensions.def \</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/Module.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/include/llvm/Support/Capacity.h</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> /home/tstellar/llvm/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>/PPConditionalDirectiveRecord.h:</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> /home/tstellar/llvm/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>/PPCallbacks.h:</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.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/DiagnosticCommonKinds.inc:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.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/DenseMap.h:</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.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/SwapByteOrder.h:</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.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/StringMap.h:</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> /home/tstellar/llvm/include/llvm/ADT/Twine.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/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.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/include/llvm/ADT/PointerUnion.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/MemoryBuffer.h:</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.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-c/Core.h:</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> /home/tstellar/llvm/tools/clang/lib/<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="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.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/Optional.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/Triple.h:</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> /home/tstellar/llvm/tools/clang/lib/<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="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> /home/tstellar/llvm/tools/clang/lib/<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="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</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/OpenCLExtensions.def:</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/Module.h:</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.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/SmallSet.h:</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.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/Capacity.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:51 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/PPConditionalDirectiveRecord_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPConditionalDirectiveRecord_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPConditionalDirectiveRecord_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPConditionalDirectiveRecord_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,182 @@
+<!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: PPConditionalDirectiveRecord.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">PPConditionalDirectiveRecord.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPConditionalDirectiveRecord_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">//===--- PPConditionalDirectiveRecord.h - Preprocessing Directives-*- 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 PPConditionalDirectiveRecord class, which maintains</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// a record of conditional directive regions.</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">#ifndef LLVM_CLANG_LEX_PPCONDITIONALDIRECTIVERECORD_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_LEX_PPCONDITIONALDIRECTIVERECORD_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="SourceLocation_8h.html" title="Defines the clang::SourceLocation class and associated facilities.">clang/Basic/SourceLocation.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="PPCallbacks_8h.html" title="Defines the PPCallbacks interface.">clang/Lex/PPCallbacks.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/// \brief Records preprocessor conditional directive regions and allows</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">/// querying in which region source locations belong to.</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html"> 26</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html" title="Records preprocessor conditional directive regions and allows querying in which region source locatio...">PPConditionalDirectiveRecord</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PPCallbacks.html" title="This interface provides a way to observe the actions of the preprocessor as it does its thing...">PPCallbacks</a> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</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="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SourceLocation, 6></a> CondDirectiveStack;</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>CondDirectiveLoc {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</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> RegionLoc;</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="keyword">public</span>:</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> CondDirectiveLoc(<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_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> RegionLoc)</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> : Loc(Loc), RegionLoc(RegionLoc) {}</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <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> getLoc()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Loc; }</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</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> getRegionLoc()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> RegionLoc; }</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html"> 42</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html">Comp</a> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &SM;</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"><a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html#a53bf43fe8f95ef58a3f760881f919ab5"> 45</a></span> <span class="keyword">explicit</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html#a53bf43fe8f95ef58a3f760881f919ab5">Comp</a>(<a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &SM) : SM(SM) {}</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html#a1b4f523f45cb9a2266f30c890ec97aae"> 46</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html#a1b4f523f45cb9a2266f30c890ec97aae">operator()</a>(<span class="keyword">const</span> CondDirectiveLoc &LHS,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">const</span> CondDirectiveLoc &RHS) {</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">return</span> SM.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(LHS.getLoc(), RHS.getLoc());</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_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html#a2fbffd51d80837d114fa14085bc9bcca"> 50</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html#a2fbffd51d80837d114fa14085bc9bcca">operator()</a>(<span class="keyword">const</span> CondDirectiveLoc &LHS, <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> RHS) {</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> SM.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(LHS.getLoc(), RHS);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html#a469370d006a43a1e262b5e8e4167efea"> 53</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord_1_1CondDirectiveLoc_1_1Comp.html#a469370d006a43a1e262b5e8e4167efea">operator()</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> LHS, <span class="keyword">const</span> CondDirectiveLoc &RHS) {</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">return</span> SM.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(LHS, RHS.getLoc());</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> };</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> };</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">typedef</span> std::vector<CondDirectiveLoc> CondDirectiveLocsTy;<span class="comment"></span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> /// \brief The locations of conditional directives in source order.</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"></span> CondDirectiveLocsTy CondDirectiveLocs;</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="keywordtype">void</span> addCondDirectiveLoc(CondDirectiveLoc DirLoc);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> /// \brief Construct a new preprocessing record.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"></span> <span class="keyword">explicit</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html#aa68ba9a58c161fb70e1d63988d6b21a7" title="Construct a new preprocessing record.">PPConditionalDirectiveRecord</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="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordtype">size_t</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html#ae02015f7407dd606f6a063f986e1f345">getTotalMemory</a>() <span class="keyword">const</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_1PPConditionalDirectiveRecord.html#a704a05b2e71d6048642c454946663154"> 71</a></span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html#a704a05b2e71d6048642c454946663154">getSourceManager</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> SourceMgr; }</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 true if the given range intersects with a conditional</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> /// directive. if a \#if/\#endif block is fully contained within the range,</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> /// this function will return false.</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html#a84a74a54dc4f5b2268c0cdc1ea66705f" title="Returns true if the given range intersects with a conditional directive. if a #if/#endif block is ful...">rangeIntersectsConditionalDirective</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"></span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> /// \brief Returns true if the given locations are in different regions,</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> /// separated by conditional directive blocks.</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html#a42928090c136cc34c534ca278b042f54"> 80</a></span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html#a42928090c136cc34c534ca278b042f54" title="Returns true if the given locations are in different regions, separated by conditional directive bloc...">areInDifferentConditionalDirectiveRegion</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> LHS,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</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> RHS)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html#a4e94ef0cfec0cba34e97ebcda9905155">findConditionalDirectiveRegionLoc</a>(LHS) !=</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <a class="code" href="classclang_1_1PPConditionalDirectiveRecord.html#a4e94ef0cfec0cba34e97ebcda9905155">findConditionalDirectiveRegionLoc</a>(RHS);</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> <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_1PPConditionalDirectiveRecord.html#a4e94ef0cfec0cba34e97ebcda9905155">findConditionalDirectiveRegionLoc</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) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> If(<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_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> ConditionRange,</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">bool</span> ConditionValue);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Elif(<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_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> ConditionRange,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">bool</span> ConditionValue, <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> IfLoc);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Ifdef(<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, <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Ifndef(<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, <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok,</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Else(<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_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> IfLoc);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Endif(<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_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> IfLoc);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> };</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> } <span class="comment">// end namespace clang</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="preprocessor">#endif // LLVM_CLANG_LEX_PPCONDITIONALDIRECTIVERECORD_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:51 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/PPDirectives_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPDirectives_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPDirectives_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPDirectives_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,2444 @@
+<!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: PPDirectives.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">PPDirectives.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPDirectives_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">//===--- PPDirectives.cpp - Directive Handling for Preprocessor -----------===//</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 Implements # directive processing for the Preprocessor.</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><span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</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="l00017"></a><span class="lineno"> 17</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="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="CodeCompletionHandler_8h.html">clang/Lex/CodeCompletionHandler.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="HeaderSearch_8h.html">clang/Lex/HeaderSearch.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="HeaderSearchOptions_8h.html">clang/Lex/HeaderSearchOptions.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="LexDiagnostic_8h.html">clang/Lex/LexDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="LiteralSupport_8h.html">clang/Lex/LiteralSupport.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="MacroInfo_8h.html" title="Defines the clang::MacroInfo and clang::MacroDirective classes.">clang/Lex/MacroInfo.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="ModuleLoader_8h.html">clang/Lex/ModuleLoader.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="Pragma_8h.html">clang/Lex/Pragma.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "llvm/ADT/APInt.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "llvm/Support/SaveAndRestore.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">using 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="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// Utility Methods for Preprocessor Directive Handling.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *Preprocessor::AllocateMacroInfo() {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> MacroInfoChain *MIChain;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (MICache) {</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> MIChain = MICache;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> MICache = MICache->Next;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> }</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> MIChain = BP.Allocate<MacroInfoChain>();</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> MIChain->Next = MIChainHead;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> MIChain->Prev = 0;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">if</span> (MIChainHead)</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> MIChainHead->Prev = MIChain;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> MIChainHead = MIChain;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">return</span> &(MIChain->MI);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> }</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#aa61d27c61e53b8c69549fedcd8baa5ef"> 55</a></span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *Preprocessor::AllocateMacroInfo(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L) {</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = <a class="code" href="classclang_1_1Preprocessor.html#aa61d27c61e53b8c69549fedcd8baa5ef" title="Allocate a new MacroInfo object with the provided SourceLocation.">AllocateMacroInfo</a>();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">new</span> (MI) <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a>(L);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">return</span> MI;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a6bc82cc7f8f29757abd0476a2fba7ed9"> 61</a></span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *<a class="code" href="classclang_1_1Preprocessor.html#a6bc82cc7f8f29757abd0476a2fba7ed9" title="Allocate a new MacroInfo object loaded from an AST file.">Preprocessor::AllocateDeserializedMacroInfo</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> L,</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">unsigned</span> SubModuleID) {</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> LLVM_STATIC_ASSERT(llvm::AlignOf<MacroInfo>::Alignment >= <span class="keyword">sizeof</span>(SubModuleID),</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="stringliteral">"alignment for MacroInfo is less than the ID"</span>);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> DeserializedMacroInfoChain *MIChain =</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> BP.Allocate<DeserializedMacroInfoChain>();</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> MIChain->Next = DeserialMIChainHead;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> DeserialMIChainHead = MIChain;</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="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = &MIChain->MI;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">new</span> (MI) <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a>(L);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> MI->FromASTFile = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> MI->setOwningModuleID(SubModuleID);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> MI;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <a class="code" href="classclang_1_1DefMacroDirective.html" title="A directive for a defined macro or a macro imported from a module.">DefMacroDirective</a> *</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> Preprocessor::AllocateDefMacroDirective(<a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI, <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="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">bool</span> isImported) {</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <a class="code" href="classclang_1_1DefMacroDirective.html" title="A directive for a defined macro or a macro imported from a module.">DefMacroDirective</a> *MD = BP.Allocate<<a class="code" href="classclang_1_1DefMacroDirective.html" title="A directive for a defined macro or a macro imported from a module.">DefMacroDirective</a>>();</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">new</span> (MD) <a class="code" href="classclang_1_1DefMacroDirective.html" title="A directive for a defined macro or a macro imported from a module.">DefMacroDirective</a>(MI, Loc, isImported);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> MD;</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> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <a class="code" href="classclang_1_1UndefMacroDirective.html" title="A directive for an undefined macro.">UndefMacroDirective</a> *</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> Preprocessor::AllocateUndefMacroDirective(<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> UndefLoc) {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <a class="code" href="classclang_1_1UndefMacroDirective.html" title="A directive for an undefined macro.">UndefMacroDirective</a> *MD = BP.Allocate<<a class="code" href="classclang_1_1UndefMacroDirective.html" title="A directive for an undefined macro.">UndefMacroDirective</a>>();</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">new</span> (MD) <a class="code" href="classclang_1_1UndefMacroDirective.html" title="A directive for an undefined macro.">UndefMacroDirective</a>(UndefLoc);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">return</span> MD;</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"> 92</span> <a class="code" href="classclang_1_1VisibilityMacroDirective.html" title="A directive for setting the module visibility of a macro.">VisibilityMacroDirective</a> *</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> Preprocessor::AllocateVisibilityMacroDirective(<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="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">bool</span> isPublic) {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <a class="code" href="classclang_1_1VisibilityMacroDirective.html" title="A directive for setting the module visibility of a macro.">VisibilityMacroDirective</a> *MD = BP.Allocate<<a class="code" href="classclang_1_1VisibilityMacroDirective.html" title="A directive for setting the module visibility of a macro.">VisibilityMacroDirective</a>>();</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">new</span> (MD) <a class="code" href="classclang_1_1VisibilityMacroDirective.html" title="A directive for setting the module visibility of a macro.">VisibilityMacroDirective</a>(Loc, isPublic);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> MD;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> }</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">/// \brief Release the specified MacroInfo to be reused for allocating</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">/// new MacroInfo objects.</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::ReleaseMacroInfo(<a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI) {</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> MacroInfoChain *MIChain = (MacroInfoChain*) MI;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">if</span> (MacroInfoChain *Prev = MIChain->Prev) {</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> MacroInfoChain *Next = MIChain->Next;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> Prev->Next = Next;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">if</span> (Next)</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> Next->Prev = Prev;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> assert(MIChainHead == MIChain);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> MIChainHead = MIChain->Next;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> MIChainHead->Prev = 0;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> MIChain->Next = MICache;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> MICache = MIChain;</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> MI-><a class="code" href="classclang_1_1MacroInfo.html#a2a5e19e708ca81f3c7a0e3538e5594c6" title="Destroy this MacroInfo object.">Destroy</a>();</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 Read and discard all tokens remaining on the current line until</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">/// the tok::eod token is found.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70"> 123</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">Preprocessor::DiscardUntilEndOfDirective</a>() {</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <a class="code" href="classclang_1_1Token.html">Token</a> Tmp;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tmp);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> assert(Tmp.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>) && <span class="stringliteral">"EOF seen while discarding directive tokens"</span>);</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> } <span class="keywordflow">while</span> (Tmp.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod));</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"></span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">/// \brief Lex and validate a macro name, which occurs after a</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">/// \#define or \#undef.</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 sets the token kind to eod and discards the rest</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">/// of the macro line if the macro name is invalid. \p isDefineUndef is 1 if</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">/// this is due to a a \#define, 2 if \#undef directive, 0 if it is something</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">/// else (e.g. \#ifdef).</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::ReadMacroName(<a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok, <span class="keywordtype">char</span> isDefineUndef) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// Read the token, don't allow macro expansion on it.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(MacroNameTok);</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> <span class="keywordflow">if</span> (MacroNameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion)) {</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">if</span> (CodeComplete)</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> CodeComplete-><a class="code" href="classclang_1_1CodeCompletionHandler.html#aa7e7742cdcea9f572c46ac4667aad5d9" title="Callback invoked when performing code completion in a context where the name of a macro is expected...">CodeCompleteMacroName</a>(isDefineUndef == 1);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <a class="code" href="classclang_1_1Preprocessor.html#a46fc08613cbf552886ad9ac01cf4b6c1" title="Note that we hit the code-completion point.">setCodeCompletionReached</a>();</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(MacroNameTok);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">// Missing macro name?</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keywordflow">if</span> (MacroNameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) {</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroNameTok, diag::err_pp_missing_macro_name);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> }</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span> (II == 0) {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> std::string Spelling = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(MacroNameTok, &Invalid);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> &Info = Identifiers.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(Spelling);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// Allow #defining |and| and friends in microsoft mode.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">if</span> (Info.<a class="code" href="classclang_1_1IdentifierInfo.html#ae199dd77b39e59429e1a05407f3be741">isCPlusPlusOperatorKeyword</a>() && <a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().MicrosoftMode) {</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> MacroNameTok.<a class="code" href="classclang_1_1Token.html#ae603a1243f89a7aeeabcb4d467c474ff">setIdentifierInfo</a>(<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(Spelling));</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">if</span> (Info.<a class="code" href="classclang_1_1IdentifierInfo.html#ae199dd77b39e59429e1a05407f3be741">isCPlusPlusOperatorKeyword</a>())</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// C++ 2.5p2: Alternative tokens behave the same as its primary token</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// except for their spellings.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroNameTok, diag::err_pp_operator_used_as_macro_name) << Spelling;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroNameTok, diag::err_pp_macro_not_identifier);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// Fall through on error.</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isDefineUndef && II-><a class="code" href="classclang_1_1IdentifierInfo.html#ae11e3e149e73feb580d57400c96154c5" title="Return the preprocessor keyword ID for this identifier.">getPPKeywordID</a>() == tok::pp_defined) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// Error if defining "defined": C99 6.10.8/4, C++ [cpp.predefined]p4.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroNameTok, diag::err_defined_macro_name);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isDefineUndef == 2 && II-><a class="code" href="classclang_1_1IdentifierInfo.html#a34cb7627ed0055795b041425667ee8a8" title="Return true if this identifier is #defined to some other value.">hasMacroDefinition</a>() &&</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <a class="code" href="classclang_1_1Preprocessor.html#aae0ad9f63f31eda09f5c5c2eac0cb307">getMacroInfo</a>(II)-><a class="code" href="classclang_1_1MacroInfo.html#ad3b0718985553acaa6ffde8700fc759c" title="Return true if this macro requires processing before expansion.">isBuiltinMacro</a>()) {</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// Warn if undefining "__LINE__" and other builtins, per C99 6.10.8/4</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// and C++ [cpp.predefined]p4], but allow it as an extension.</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroNameTok, diag::ext_pp_undef_builtin_macro);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// Okay, we got a good identifier node. Return it.</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> }</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// Invalid macro name, read and discard the rest of the line. Then set the</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// token kind to tok::eod.</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> MacroNameTok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::eod);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</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> <span class="comment"></span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">/// \brief Ensure that the next token is a tok::eod token.</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">/// If not, emit a diagnostic and consume up until the eod. If EnableMacros is</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment">/// true, then we consider macros that expand to zero tokens as being ok.</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49"> 201</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">Preprocessor::CheckEndOfDirective</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *DirType, <span class="keywordtype">bool</span> EnableMacros) {</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <a class="code" href="classclang_1_1Token.html">Token</a> Tmp;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">// Lex unexpanded tokens for most directives: macros might expand to zero</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// tokens, causing us to miss diagnosing invalid lines. Some directives (like</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// #line) allow empty macros.</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">if</span> (EnableMacros)</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(Tmp);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tmp);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// There should be no tokens after the directive, but we allow them as an</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment">// extension.</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">while</span> (Tmp.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comment)) <span class="comment">// Skip comments in -C mode.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tmp);</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">if</span> (Tmp.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod)) {</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment">// Add a fixit in GNU/C99/C++ mode. Don't offer a fixit for strict-C89,</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// or if this is a macro-style preprocessing directive, because it is more</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment">// trouble than it is worth to insert /**/ and check that there is no /**/</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment">// in the range also.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <a class="code" href="classclang_1_1FixItHint.html" title="Annotates a diagnostic with some code that should be inserted, removed, or replaced to fix the proble...">FixItHint</a> Hint;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">if</span> ((LangOpts.GNUMode || LangOpts.C99 || LangOpts.CPlusPlus) &&</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> !CurTokenLexer)</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> Hint = <a class="code" href="classclang_1_1FixItHint.html#afd481d826e9ddaa39fc82a698a810246" title="Create a code modification hint that inserts the given code string at a specific location.">FixItHint::CreateInsertion</a>(Tmp.<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>(),<span class="stringliteral">"//"</span>);</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tmp, diag::ext_pp_extra_tokens_at_eol) << DirType << Hint;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> }</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> }</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment"></span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment">/// SkipExcludedConditionalBlock - We just read a \#if or related directive and</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">/// decided that the subsequent tokens are in the \#if'd out portion of the</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment">/// file. Lex the rest of the file, until we see an \#endif. If</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment">/// FoundNonSkipPortion is true, then we have already emitted code for part of</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">/// this \#if directive, so \#else/\#elif blocks should never be entered.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">/// If ElseOk is true, then \#else directives are ok, if not, then we have</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment">/// already seen one so a \#else directive is a duplicate. When this returns,</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment">/// the caller can lex the first valid token.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::SkipExcludedConditionalBlock(<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> IfTokenLoc,</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keywordtype">bool</span> FoundNonSkipPortion,</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keywordtype">bool</span> FoundElse,</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</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> ElseLoc) {</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> ++NumSkipped;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> assert(!CurTokenLexer && CurPPLexer && <span class="stringliteral">"Lexing a macro, not a file?"</span>);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3968b8c3fa5d9d2541a15d8af2e9414d">pushConditionalLevel</a>(IfTokenLoc, <span class="comment">/*isSkipping*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> FoundNonSkipPortion, FoundElse);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keywordflow">if</span> (CurPTHLexer) {</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> PTHSkipExcludedConditionalBlock();</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> }</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment">// Enter raw mode to disable identifier lookup (and thus macro expansion),</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="comment">// disabling warnings, etc.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> CurLexer->Lex(Tok);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion)) {</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">if</span> (CodeComplete)</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> CodeComplete-><a class="code" href="classclang_1_1CodeCompletionHandler.html#aec60160ece211f3bda8c8204deafac55" title="Callback invoked when performing code completion within a block of code that was excluded due to prep...">CodeCompleteInConditionalExclusion</a>();</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <a class="code" href="classclang_1_1Preprocessor.html#a46fc08613cbf552886ad9ac01cf4b6c1" title="Note that we hit the code-completion point.">setCodeCompletionReached</a>();</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> }</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment">// If this is the end of the buffer, we have an error.</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>)) {</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment">// Emit errors for each unterminated conditional on the stack, including</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment">// the current one.</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">while</span> (!CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a61ced6f2bac7be5b564b1329ccc63300" title="Information about the set of #if/#ifdef/#ifndef blocks we are currently in.">ConditionalStack</a>.empty()) {</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">if</span> (CurLexer->getFileLoc() != CodeCompletionFileLoc)</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a61ced6f2bac7be5b564b1329ccc63300" title="Information about the set of #if/#ifdef/#ifndef blocks we are currently in.">ConditionalStack</a>.back().IfLoc,</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> diag::err_pp_unterminated_conditional);</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a61ced6f2bac7be5b564b1329ccc63300" title="Information about the set of #if/#ifdef/#ifndef blocks we are currently in.">ConditionalStack</a>.pop_back();</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> }</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// Just return and let the caller lex after this #include.</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">break</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> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment">// If this token is not a preprocessor directive, just skip it.</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::hash) || !Tok.<a class="code" href="classclang_1_1Token.html#a895009ede74790b61cf636fd7e498d44">isAtStartOfLine</a>())</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">continue</span>;</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> <span class="comment">// We just parsed a # character at the start of a line, so we're in</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment">// directive mode. Tell the lexer this so any newlines we see will be</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment">// converted into an EOD token (this terminates the macro).</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">if</span> (CurLexer) CurLexer->SetKeepWhitespaceMode(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment">// Read the next token, the directive flavor.</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="comment">// If this isn't an identifier directive (e.g. is "# 1\n" or "#\n", or</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment">// something bogus), skip it.</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::raw_identifier)) {</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="comment">// Restore comment saving mode.</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">if</span> (CurLexer) CurLexer->resetExtendedTokenMode();</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> }</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment">// If the first letter isn't i or e, it isn't intesting to us. We know that</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="comment">// this is safe in the face of spelling differences, because there is no way</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment">// to spell an i/e in a strange way that is another letter. Skipping this</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment">// allows us to avoid looking up the identifier info for #define/#undef and</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment">// other common directives.</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *RawCharData = Tok.<a class="code" href="classclang_1_1Token.html#a63f951b781b7c3cca10b5edd2adfaf11">getRawIdentifierData</a>();</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> <span class="keywordtype">char</span> FirstChar = RawCharData[0];</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="keywordflow">if</span> (FirstChar >= <span class="charliteral">'a'</span> && FirstChar <= <span class="charliteral">'z'</span> &&</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> FirstChar != <span class="charliteral">'i'</span> && FirstChar != <span class="charliteral">'e'</span>) {</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">// Restore comment saving mode.</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keywordflow">if</span> (CurLexer) CurLexer->resetExtendedTokenMode();</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> }</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment">// Get the identifier name without trigraphs or embedded newlines. Note</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment">// that we can't use Tok.getIdentifierInfo() because its lookup is disabled</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment">// when skipping.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keywordtype">char</span> DirectiveBuf[20];</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> StringRef <a class="code" href="VerifyDiagnosticConsumer_8cpp.html#a921b22de3a2e7d65400ea994e3d70c9d">Directive</a>;</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keywordflow">if</span> (!Tok.<a class="code" href="classclang_1_1Token.html#a892fc9f1e67289184b22e6a9c13a940e" title="Return true if this token has trigraphs or escaped newlines in it.">needsCleaning</a>() && Tok.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>() < 20) {</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> Directive = StringRef(RawCharData, Tok.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>());</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> std::string DirectiveStr = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(Tok);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keywordtype">unsigned</span> IdLen = DirectiveStr.size();</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keywordflow">if</span> (IdLen >= 20) {</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment">// Restore comment saving mode.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keywordflow">if</span> (CurLexer) CurLexer->resetExtendedTokenMode();</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> }</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> memcpy(DirectiveBuf, &DirectiveStr[0], IdLen);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> Directive = StringRef(DirectiveBuf, IdLen);</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> </div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">if</span> (Directive.startswith(<span class="stringliteral">"if"</span>)) {</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> StringRef Sub = Directive.substr(2);</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="keywordflow">if</span> (Sub.empty() || <span class="comment">// "if"</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> Sub == <span class="stringliteral">"def"</span> || <span class="comment">// "ifdef"</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> Sub == <span class="stringliteral">"ndef"</span>) { <span class="comment">// "ifndef"</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// We know the entire #if/#ifdef/#ifndef block will be skipped, don't</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment">// bother parsing the condition.</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3968b8c3fa5d9d2541a15d8af2e9414d">pushConditionalLevel</a>(Tok.<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>(), <span class="comment">/*wasskipping*/</span><span class="keyword">true</span>,</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">/*foundnonskip*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment">/*foundelse*/</span><span class="keyword">false</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="keywordflow">else</span> <span class="keywordflow">if</span> (Directive[0] == <span class="charliteral">'e'</span>) {</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> StringRef Sub = Directive.substr(1);</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="keywordflow">if</span> (Sub == <span class="stringliteral">"ndif"</span>) { <span class="comment">// "endif"</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> CondInfo;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aeb024e3de8d2e6f7e0884348af7413ce" title="True if this was contained in a skipping directive, e.g., in a "\#if 0" block.">WasSkipping</a> = <span class="keyword">true</span>; <span class="comment">// Silence bogus warning.</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="keywordtype">bool</span> InCond = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a8b08635b456503da08924de9ebb30ed2">popConditionalLevel</a>(CondInfo);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> (void)InCond; <span class="comment">// Silence warning in no-asserts mode.</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> assert(!InCond && <span class="stringliteral">"Can't be skipping if not in a conditional!"</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> <span class="comment">// If we popped the outermost skipping block, we're done skipping!</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keywordflow">if</span> (!CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aeb024e3de8d2e6f7e0884348af7413ce" title="True if this was contained in a skipping directive, e.g., in a "\#if 0" block.">WasSkipping</a>) {</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="comment">// Restore the value of LexingRawMode so that trailing comments</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="comment">// are handled correctly, if we've reached the outermost block.</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"endif"</span>);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#afc62ca1401125f516d58b1629a2093ce" title="Hook called whenever an #endif is seen.">Endif</a>(Tok.<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>(), CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a>);</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> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</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="keywordflow">else</span> <span class="keywordflow">if</span> (Sub == <span class="stringliteral">"lse"</span>) { <span class="comment">// "else".</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="comment">// #else directive in a skipping conditional. If not in some other</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="comment">// skipping conditional, and if #else hasn't already been seen, enter it</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="comment">// as a non-skipping conditional.</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> &CondInfo = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#ac1d2977a512b1bbc8fa802d92564810d" title="Return the top of the conditional stack.">peekConditionalLevel</a>();</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="comment">// If this is a #else with a #else before it, report the error.</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keywordflow">if</span> (CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a>) <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::pp_err_else_after_else);</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> <span class="comment">// Note that we've seen a #else in this conditional.</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="comment">// If the conditional is at the top level, and the #if block wasn't</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="comment">// entered, enter the #else block now.</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keywordflow">if</span> (!CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aeb024e3de8d2e6f7e0884348af7413ce" title="True if this was contained in a skipping directive, e.g., in a "\#if 0" block.">WasSkipping</a> && !CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a>) {</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="comment">// Restore the value of LexingRawMode so that trailing comments</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="comment">// are handled correctly.</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"else"</span>);</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#ad57f91b6d9c3cbcca326a2bfb49e0314" title="Hook called whenever an #else is seen.">Else</a>(Tok.<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>(), CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a>);</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>(); <span class="comment">// C99 6.10p4.</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> }</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Sub == <span class="stringliteral">"lif"</span>) { <span class="comment">// "elif".</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> &CondInfo = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#ac1d2977a512b1bbc8fa802d92564810d" title="Return the top of the conditional stack.">peekConditionalLevel</a>();</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keywordtype">bool</span> ShouldEnter;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="keyword">const</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> ConditionalBegin = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>();</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// If this is in a skipping block or if we're already handled this #if</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="comment">// block, don't bother parsing the condition.</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keywordflow">if</span> (CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aeb024e3de8d2e6f7e0884348af7413ce" title="True if this was contained in a skipping directive, e.g., in a "\#if 0" block.">WasSkipping</a> || CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a>) {</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> ShouldEnter = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment">// Restore the value of LexingRawMode so that identifiers are</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="comment">// looked up, etc, inside the #elif expression.</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> assert(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> && <span class="stringliteral">"We have to be skipping here!"</span>);</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *IfNDefMacro = 0;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> ShouldEnter = EvaluateDirectiveExpression(IfNDefMacro);</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> }</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ConditionalEnd = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>();</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="comment">// If this is a #elif with a #else before it, report the error.</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keywordflow">if</span> (CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a>) <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::pp_err_elif_after_else);</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="comment">// If this condition is true, enter it!</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keywordflow">if</span> (ShouldEnter) {</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a180c9e106a28d60a6112e16b1bb8302a" title="Hook called whenever an #elif is seen.">Elif</a>(Tok.<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>(),</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ConditionalBegin, ConditionalEnd),</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> ShouldEnter, CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a>);</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> }</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> }</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> }</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="comment">// Restore comment saving mode.</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keywordflow">if</span> (CurLexer) CurLexer->resetExtendedTokenMode();</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> }</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="comment">// Finally, if we are out of the conditional (saw an #endif or ran off the end</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="comment">// of the file, just stop skipping and return to lexing whatever came after</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="comment">// the #if block.</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keywordflow">if</span> (Callbacks) {</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</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> BeginLoc = ElseLoc.<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>() ? ElseLoc : IfTokenLoc;</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#abdb4ebe11610f079ac33515965794b46" title="Hook called when a source range is skipped.">SourceRangeSkipped</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(BeginLoc, Tok.<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>()));</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> }</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="keywordtype">void</span> Preprocessor::PTHSkipExcludedConditionalBlock() {</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> assert(CurPTHLexer);</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> assert(CurPTHLexer->LexingRawMode == <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="comment">// Skip to the next '#else', '#elif', or #endif.</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keywordflow">if</span> (CurPTHLexer->SkipBlock()) {</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="comment">// We have reached an #endif. Both the '#' and 'endif' tokens</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="comment">// have been consumed by the PTHLexer. Just pop off the condition level.</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> CondInfo;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="keywordtype">bool</span> InCond = CurPTHLexer->popConditionalLevel(CondInfo);</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> (void)InCond; <span class="comment">// Silence warning in no-asserts mode.</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> assert(!InCond && <span class="stringliteral">"Can't be skipping if not in a conditional!"</span>);</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> }</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="comment">// We have reached a '#else' or '#elif'. Lex the next token to get</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="comment">// the directive flavor.</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="comment">// We can actually look up the IdentifierInfo here since we aren't in</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="comment">// raw mode.</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <a class="code" href="namespaceclang_1_1tok.html#add9c2c08b026d30fd8562736083f592a" title="Provides a namespace for preprocessor keywords which start with a '#' at the beginning of the line...">tok::PPKeywordKind</a> K = Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#ae11e3e149e73feb580d57400c96154c5" title="Return the preprocessor keyword ID for this identifier.">getPPKeywordID</a>();</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="keywordflow">if</span> (K == tok::pp_else) {</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="comment">// #else: Enter the else condition. We aren't in a nested condition</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="comment">// since we skip those. We're always in the one matching the last</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="comment">// blocked we skipped.</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> &CondInfo = CurPTHLexer->peekConditionalLevel();</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="comment">// Note that we've seen a #else in this conditional.</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment">// If the #if block wasn't entered then enter the #else block now.</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keywordflow">if</span> (!CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a>) {</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="comment">// Scan until the eod token.</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> CurPTHLexer->ParsingPreprocessorDirective = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> CurPTHLexer->ParsingPreprocessorDirective = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> }</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="comment">// Otherwise skip this block.</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> }</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> assert(K == tok::pp_elif);</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> &CondInfo = CurPTHLexer->peekConditionalLevel();</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="comment">// If this is a #elif with a #else before it, report the error.</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="keywordflow">if</span> (CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a>)</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::pp_err_elif_after_else);</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> <span class="comment">// If this is in a skipping block or if we're already handled this #if</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="comment">// block, don't bother parsing the condition. We just skip this block.</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">if</span> (CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a>)</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="comment">// Evaluate the condition of the #elif.</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *IfNDefMacro = 0;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> CurPTHLexer->ParsingPreprocessorDirective = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keywordtype">bool</span> ShouldEnter = EvaluateDirectiveExpression(IfNDefMacro);</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> CurPTHLexer->ParsingPreprocessorDirective = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="comment">// If this condition is true, enter it!</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keywordflow">if</span> (ShouldEnter) {</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> }</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="comment">// Otherwise, skip this block and go to the next one.</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">continue</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> }</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Preprocessor::getModuleForLocation(<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) {</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> &ModMap = HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>();</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="keywordflow">if</span> (SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a30bc78248de9022150189daa58ca1397" title="Returns whether the PresumedLoc for a given SourceLocation is in the main file.">isInMainFile</a>(FilenameLoc)) {</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *CurMod = <a class="code" href="classclang_1_1Preprocessor.html#a8a8fc5c309076e8a00fa873fd7d001ee" title="Retrieves the module that we're currently building, if any.">getCurrentModule</a>())</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">return</span> CurMod; <span class="comment">// Compiling a module.</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="keywordflow">return</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>().<a class="code" href="classclang_1_1ModuleMap.html#a7a5b8df4ab18c5ed78cde851e2842e4d">SourceModule</a>; <span class="comment">// Compiling a source.</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> }</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="comment">// Try to determine the module of the include directive.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</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> IDOfIncl = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(FilenameLoc);</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</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> *EntryOfIncl = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(IDOfIncl)) {</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment">// The include comes from a file.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">return</span> ModMap.<a class="code" href="classclang_1_1ModuleMap.html#a127dbf10d2e3134aedb7d7c60cf23cc9" title="Retrieve the module that owns the given header file, if any.">findModuleForHeader</a>(EntryOfIncl).<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="l00547"></a><span class="lineno"> 547</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="comment">// The include does not come from a file,</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="comment">// so it is probably a module compilation.</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a8a8fc5c309076e8a00fa873fd7d001ee" title="Retrieves the module that we're currently building, if any.">getCurrentModule</a>();</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> }</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> }</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="keywordtype">bool</span> Preprocessor::violatesPrivateInclude(</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *RequestingModule,</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</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> *IncFileEnt,</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <a class="code" href="classclang_1_1ModuleMap.html#ac7a2413d4d0a8f29d2dad359bcfd8dec" title="Describes the role of a module header.">ModuleMap::ModuleHeaderRole</a> Role,</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *RequestedModule) {</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> #ifndef NDEBUG</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"></span> <span class="comment">// Check for consistency between the module header role</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="comment">// as obtained from the lookup and as obtained from the module.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="comment">// This check is not cheap, so enable it only for debugging.</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<const FileEntry *></a> &PvtHdrs</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> = RequestedModule-><a class="code" href="classclang_1_1Module.html#a03cc716919c98f60df2b1e2ed346f8bb" title="The headers that are private to this module.">PrivateHeaders</a>;</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<const FileEntry *>::iterator</a> Look</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> = std::find(PvtHdrs.begin(), PvtHdrs.end(), IncFileEnt);</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="keywordtype">bool</span> IsPrivate = Look != PvtHdrs.end();</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> assert((IsPrivate && 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="l00569"></a><span class="lineno"> 569</span> || (!IsPrivate && 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="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"></span> <span class="keywordflow">return</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="l00572"></a><span class="lineno"> 572</span> RequestedModule-><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>() != RequestingModule;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> }</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="keywordtype">bool</span> Preprocessor::violatesUseDeclarations(</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *RequestingModule,</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *RequestedModule) {</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> &ModMap = HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>();</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> ModMap.<a class="code" href="classclang_1_1ModuleMap.html#aff262a15ac7933edd463953d969e4f6b" title="Resolve all of the unresolved uses in the given module.">resolveUses</a>(RequestingModule, <span class="comment">/*Complain=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Module *></a> &AllowedUses = RequestingModule-><a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e" title="The directly used modules.">DirectUses</a>;</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Module *>::const_iterator</a> Declared =</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> std::find(AllowedUses.begin(), AllowedUses.end(), RequestedModule);</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">return</span> Declared == AllowedUses.end();</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</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="keywordtype">void</span> Preprocessor::verifyModuleInclude(<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,</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> StringRef Filename,</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</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> *IncFileEnt) {</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *RequestingModule = getModuleForLocation(FilenameLoc);</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">if</span> (RequestingModule)</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>().<a class="code" href="classclang_1_1ModuleMap.html#aff262a15ac7933edd463953d969e4f6b" title="Resolve all of the unresolved uses in the given module.">resolveUses</a>(RequestingModule, <span class="comment">/*Complain=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</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> RequestedModule =</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>().<a class="code" href="classclang_1_1ModuleMap.html#a127dbf10d2e3134aedb7d7c60cf23cc9" title="Retrieve the module that owns the given header file, if any.">findModuleForHeader</a>(IncFileEnt,</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> RequestingModule);</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">if</span> (RequestingModule == RequestedModule.<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="l00597"></a><span class="lineno"> 597</span> <span class="keywordflow">return</span>; <span class="comment">// No faults wihin a module, or between files both not in modules.</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> </div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="keywordflow">if</span> (RequestingModule != HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>().<a class="code" href="classclang_1_1ModuleMap.html#a7a5b8df4ab18c5ed78cde851e2842e4d">SourceModule</a>)</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">return</span>; <span class="comment">// No errors for indirect modules.</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="comment">// This may be a bit of a problem for modules with no source files.</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">if</span> (RequestedModule && violatesPrivateInclude(RequestingModule, IncFileEnt,</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> RequestedModule.<a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a615f8b7ad99d67134a8a55d1d3fab994" title="The role of this header within the module.">getRole</a>(),</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> RequestedModule.<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="l00606"></a><span class="lineno"> 606</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameLoc, diag::error_use_of_private_header_outside_module)</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> << Filename;</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="comment">// FIXME: Add support for FixIts in module map files and offer adding the</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="comment">// required use declaration.</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="keywordflow">if</span> (RequestingModule && <a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().ModulesDeclUse &&</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> violatesUseDeclarations(RequestingModule, RequestedModule.<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="l00613"></a><span class="lineno"> 613</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameLoc, diag::error_undeclared_use_of_module)</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> << Filename;</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"><a class="code" href="classclang_1_1Preprocessor.html#abaaffb22cc7abb1535773930ec1e5cfb"> 617</a></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_1Preprocessor.html#abaaffb22cc7abb1535773930ec1e5cfb" title="Given a "foo" or <foo> reference, look up the indicated file.">Preprocessor::LookupFile</a>(</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</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,</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> StringRef Filename,</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="keywordtype">bool</span> isAngled,</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *FromDir,</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *&CurDir,</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<char></a> *SearchPath,</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<char></a> *RelativePath,</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</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> *SuggestedModule,</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="keywordtype">bool</span> SkipCache) {</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="comment">// If the header lookup mechanism may be relative to the current file, pass in</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="comment">// info about where the current file is.</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</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> *CurFileEnt = 0;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="keywordflow">if</span> (!FromDir) {</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID = <a class="code" href="classclang_1_1Preprocessor.html#a11a6206e7d47ca4d8509b97e3a0da167">getCurrentFileLexer</a>()-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>();</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> CurFileEnt = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(FID);</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="comment">// If there is no file entry associated with this file, it must be the</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="comment">// predefines buffer. Any other file is not lexed with a normal lexer, so</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="comment">// it won't be scanned for preprocessor directives. If we have the</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="comment">// predefines buffer, resolve #include references (which come from the</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="comment">// -include command line argument) as if they came from the main file, this</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="comment">// affects file lookup etc.</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">if</span> (CurFileEnt == 0) {</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> FID = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ad3ac47ab7380c82d19243a2db765479c" title="Returns the FileID of the main source file.">getMainFileID</a>();</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> CurFileEnt = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(FID);</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> }</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> }</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="comment">// Do a standard file entry lookup.</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> CurDir = CurDirLookup;</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</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> *FE = HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#aa1c602962266d121be3a1f58142abc9d" title="Given a "foo" or <foo> reference, look up the indicated file, return null on failure.">LookupFile</a>(</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> Filename, isAngled, FromDir, CurDir, CurFileEnt,</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> SearchPath, RelativePath, SuggestedModule, SkipCache);</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="keywordflow">if</span> (FE) {</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="keywordflow">if</span> (SuggestedModule)</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> verifyModuleInclude(FilenameLoc, Filename, FE);</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="keywordflow">return</span> FE;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> }</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="comment">// Otherwise, see if this is a subframework header. If so, this is relative</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="comment">// to one of the headers on the #include stack. Walk the list of the current</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="comment">// headers on the #include stack and pass them to HeaderInfo.</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="keywordflow">if</span> (IsFileLexer()) {</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="keywordflow">if</span> ((CurFileEnt = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>())))</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="keywordflow">if</span> ((FE = HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#ad1609d2856163bb155dd653560e575af" title="Look up a subframework for the specified #include file.">LookupSubframeworkHeader</a>(Filename, CurFileEnt,</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> SearchPath, RelativePath,</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> SuggestedModule)))</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="keywordflow">return</span> FE;</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> }</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> </div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = IncludeMacroStack.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> IncludeStackInfo &ISEntry = IncludeMacroStack[e-i-1];</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keywordflow">if</span> (IsFileLexer(ISEntry)) {</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="keywordflow">if</span> ((CurFileEnt =</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(ISEntry.ThePPLexer->getFileID())))</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="keywordflow">if</span> ((FE = HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#ad1609d2856163bb155dd653560e575af" title="Look up a subframework for the specified #include file.">LookupSubframeworkHeader</a>(</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> Filename, CurFileEnt, SearchPath, RelativePath,</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> SuggestedModule)))</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">return</span> FE;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> }</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> }</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> <span class="comment">// Otherwise, we really couldn't find the file.</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> }</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> </div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="comment">// Preprocessor Directive Handling.</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div>
+<div class="line"><a name="l00689"></a><span class="lineno"><a class="code" href="classPreprocessor_1_1ResetMacroExpansionHelper.html"> 689</a></span> <span class="keyword">class </span><a class="code" href="classPreprocessor_1_1ResetMacroExpansionHelper.html">Preprocessor::ResetMacroExpansionHelper</a> {</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00691"></a><span class="lineno"><a class="code" href="classPreprocessor_1_1ResetMacroExpansionHelper.html#aaa8b527699ea2446bff349126da570aa"> 691</a></span> <a class="code" href="classPreprocessor_1_1ResetMacroExpansionHelper.html#aaa8b527699ea2446bff349126da570aa">ResetMacroExpansionHelper</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> *pp)</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> : PP(pp), save(pp->DisableMacroExpansion) {</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="keywordflow">if</span> (pp->MacroExpansionInDirectivesOverride)</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> pp->DisableMacroExpansion = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> }</div>
+<div class="line"><a name="l00696"></a><span class="lineno"><a class="code" href="classPreprocessor_1_1ResetMacroExpansionHelper.html#add0305218c4d51694c100015e6be3938"> 696</a></span> <a class="code" href="classPreprocessor_1_1ResetMacroExpansionHelper.html#add0305218c4d51694c100015e6be3938">~ResetMacroExpansionHelper</a>() {</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> PP->DisableMacroExpansion = save;</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> }</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> *PP;</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="keywordtype">bool</span> save;</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> };</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="comment"></span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="comment">/// HandleDirective - This callback is invoked when the lexer sees a # token</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="comment">/// at the start of a line. This consumes the directive, modifies the</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="comment">/// lexer/preprocessor state, and advances the lexer(s) so that the next token</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="comment">/// read is the correct one.</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#ab6cb207d9606e228aac0ed63d529cfa2"> 708</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#ab6cb207d9606e228aac0ed63d529cfa2">Preprocessor::HandleDirective</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Result) {</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="comment">// FIXME: Traditional: # with whitespace before it not recognized by K&R?</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="comment">// We just parsed a # character at the start of a line, so we're in directive</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="comment">// mode. Tell the lexer this so any newlines we see will be converted into an</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="comment">// EOD token (which terminates the directive).</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="keywordflow">if</span> (CurLexer) CurLexer->SetKeepWhitespaceMode(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="keywordtype">bool</span> ImmediatelyAfterTopLevelIfndef =</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#a685c4d7282424823e67fe1595d0db250">getImmediatelyAfterTopLevelIfndef</a>();</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#adc6998eedbfdd5beb27666d1bd6a8604">resetImmediatelyAfterTopLevelIfndef</a>();</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> ++NumDirectives;</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> </div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="comment">// We are about to read a token. For the multiple-include optimization FA to</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="comment">// work, we have to remember if we had read any tokens *before* this</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="comment">// pp-directive.</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="keywordtype">bool</span> ReadAnyTokensBeforeDirective =CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#a23426d820924a7de712697ac350d1a69">getHasReadAnyTokensVal</a>();</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="comment">// Save the '#' token in case we need to return it later.</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <a class="code" href="classclang_1_1Token.html">Token</a> SavedHash = Result;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="comment">// Read the next token, the directive flavor. This isn't expanded due to</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="comment">// C99 6.10.3p8.</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Result);</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">// C99 6.10.3p11: Is this preprocessor directive in macro invocation? e.g.:</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="comment">// #define A(x) #x</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="comment">// A(abc</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="comment">// #warning blah</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="comment">// def)</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="comment">// If so, the user is relying on undefined behavior, emit a diagnostic. Do</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="comment">// not support this for #include-like directives, since that can result in</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="comment">// terrible diagnostics, and does not work in GCC.</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="keywordflow">if</span> (InMacroArgs) {</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = Result.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()) {</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="keywordflow">switch</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#ae11e3e149e73feb580d57400c96154c5" title="Return the preprocessor keyword ID for this identifier.">getPPKeywordID</a>()) {</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="keywordflow">case</span> tok::pp_include:</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="keywordflow">case</span> tok::pp_import:</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="keywordflow">case</span> tok::pp_include_next:</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="keywordflow">case</span> tok::pp___include_macros:</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Result, diag::err_embedded_include) << II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> }</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> }</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Result, diag::ext_embedded_directive);</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> }</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="comment">// Temporarily enable macro expansion if set so</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="comment">// and reset to previous state when returning from this function.</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <a class="code" href="classPreprocessor_1_1ResetMacroExpansionHelper.html">ResetMacroExpansionHelper</a> helper(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="keywordflow">switch</span> (Result.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="keywordflow">case</span> tok::eod:</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="keywordflow">return</span>; <span class="comment">// null directive.</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="keywordflow">case</span> tok::code_completion:</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="keywordflow">if</span> (CodeComplete)</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> CodeComplete-><a class="code" href="classclang_1_1CodeCompletionHandler.html#af7708c71e99d0a9da724bdc24d482851" title="Callback invoked when performing code completion for a preprocessor directive.">CodeCompleteDirective</a>(</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a36a7490cb33de4544dad12b7af760cfd">getConditionalStackDepth</a>() > 0);</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <a class="code" href="classclang_1_1Preprocessor.html#a46fc08613cbf552886ad9ac01cf4b6c1" title="Note that we hit the code-completion point.">setCodeCompletionReached</a>();</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="keywordflow">case</span> tok::numeric_constant: <span class="comment">// # 7 GNU line marker directive.</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().AsmPreprocessor)</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="keywordflow">break</span>; <span class="comment">// # 4 is not a preprocessor directive in .S files.</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="keywordflow">return</span> HandleDigitDirective(Result);</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = Result.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="keywordflow">if</span> (II == 0) <span class="keywordflow">break</span>; <span class="comment">// Not an identifier.</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="comment">// Ask what the preprocessor keyword ID is.</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="keywordflow">switch</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#ae11e3e149e73feb580d57400c96154c5" title="Return the preprocessor keyword ID for this identifier.">getPPKeywordID</a>()) {</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="keywordflow">default</span>: <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="comment">// C99 6.10.1 - Conditional Inclusion.</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="keywordflow">case</span> tok::pp_if:</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="keywordflow">return</span> HandleIfDirective(Result, ReadAnyTokensBeforeDirective);</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="keywordflow">case</span> tok::pp_ifdef:</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="keywordflow">return</span> HandleIfdefDirective(Result, <span class="keyword">false</span>, <span class="keyword">true</span><span class="comment">/*not valid for miopt*/</span>);</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="keywordflow">case</span> tok::pp_ifndef:</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="keywordflow">return</span> HandleIfdefDirective(Result, <span class="keyword">true</span>, ReadAnyTokensBeforeDirective);</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="keywordflow">case</span> tok::pp_elif:</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="keywordflow">return</span> HandleElifDirective(Result);</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="keywordflow">case</span> tok::pp_else:</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="keywordflow">return</span> HandleElseDirective(Result);</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="keywordflow">case</span> tok::pp_endif:</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="keywordflow">return</span> HandleEndifDirective(Result);</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> </div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="comment">// C99 6.10.2 - Source File Inclusion.</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="keywordflow">case</span> tok::pp_include:</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="comment">// Handle #include.</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="keywordflow">return</span> HandleIncludeDirective(SavedHash.<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>(), Result);</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="keywordflow">case</span> tok::pp___include_macros:</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <span class="comment">// Handle -imacros.</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> <span class="keywordflow">return</span> HandleIncludeMacrosDirective(SavedHash.<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>(), Result); </div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> </div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="comment">// C99 6.10.3 - Macro Replacement.</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="keywordflow">case</span> tok::pp_define:</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="keywordflow">return</span> HandleDefineDirective(Result, ImmediatelyAfterTopLevelIfndef);</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="keywordflow">case</span> tok::pp_undef:</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="keywordflow">return</span> HandleUndefDirective(Result);</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> </div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> <span class="comment">// C99 6.10.4 - Line Control.</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="keywordflow">case</span> tok::pp_line:</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="keywordflow">return</span> HandleLineDirective(Result);</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> </div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="comment">// C99 6.10.5 - Error Directive.</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="keywordflow">case</span> tok::pp_error:</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="keywordflow">return</span> HandleUserDiagnosticDirective(Result, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="comment">// C99 6.10.6 - Pragma Directive.</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <span class="keywordflow">case</span> tok::pp_pragma:</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="keywordflow">return</span> HandlePragmaDirective(SavedHash.<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="namespaceclang.html#abad0c9179d409d68fce8917ebd5276eda1c74acb27e5d894c632777b08047781e" title="The pragma was introduced via #pragma.">PIK_HashPragma</a>);</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> </div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="comment">// GNU Extensions.</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">case</span> tok::pp_import:</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="keywordflow">return</span> HandleImportDirective(SavedHash.<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>(), Result);</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <span class="keywordflow">case</span> tok::pp_include_next:</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="keywordflow">return</span> HandleIncludeNextDirective(SavedHash.<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>(), Result);</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="keywordflow">case</span> tok::pp_warning:</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Result, diag::ext_pp_warning_directive);</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="keywordflow">return</span> HandleUserDiagnosticDirective(Result, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="keywordflow">case</span> tok::pp_ident:</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="keywordflow">return</span> HandleIdentSCCSDirective(Result);</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="keywordflow">case</span> tok::pp_sccs:</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="keywordflow">return</span> HandleIdentSCCSDirective(Result);</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="keywordflow">case</span> tok::pp_assert:</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <span class="comment">//isExtension = true; // FIXME: implement #assert</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="keywordflow">case</span> tok::pp_unassert:</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="comment">//isExtension = true; // FIXME: implement #unassert</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="keywordflow">case</span> tok::pp___public_macro:</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().Modules)</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="keywordflow">return</span> HandleMacroPublicDirective(Result);</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> </div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="keywordflow">case</span> tok::pp___private_macro:</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().Modules)</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="keywordflow">return</span> HandleMacroPrivateDirective(Result);</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> }</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> }</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> </div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="comment">// If this is a .S file, treat unknown # directives as non-preprocessor</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="comment">// directives. This is important because # may be a comment or introduce</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="comment">// various pseudo-ops. Just return the # token and push back the following</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="comment">// token to be lexed next time.</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().AsmPreprocessor) {</div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <a class="code" href="classclang_1_1Token.html">Token</a> *Toks = <span class="keyword">new</span> <a class="code" href="classclang_1_1Token.html">Token</a>[2];</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="comment">// Return the # and the token after it.</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> Toks[0] = SavedHash;</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> Toks[1] = Result;</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> </div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="comment">// If the second token is a hashhash token, then we need to translate it to</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="comment">// unknown so the token lexer doesn't try to perform token pasting.</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="keywordflow">if</span> (Result.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::hashhash))</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> Toks[1].setKind(tok::unknown);</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> </div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="comment">// Enter this token stream so that we re-lex the tokens. Make sure to</span></div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="comment">// enable macro expansion, in case the token after the # is an identifier</span></div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="comment">// that is expanded.</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <a class="code" href="classclang_1_1Preprocessor.html#a4869ffa7c1268e6e7cbd8fd5b7b0364d">EnterTokenStream</a>(Toks, 2, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> }</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="comment">// If we reached here, the preprocessing token is not valid!</span></div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Result, diag::err_pp_invalid_directive);</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> </div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="comment">// Read the rest of the PP line.</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> </div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="comment">// Okay, we're done parsing the directive.</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> }</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="comment"></span></div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="comment">/// GetLineValue - Convert a numeric token into an unsigned value, emitting</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="comment">/// Diagnostic DiagID if it is invalid, and returning the value in Val.</span></div>
+<div class="line"><a name="l00890"></a><span class="lineno"><a class="code" href="PPDirectives_8cpp.html#a864e5ea6da89d06a9603b93beeded5e1"> 890</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPDirectives_8cpp.html#a864e5ea6da89d06a9603b93beeded5e1">GetLineValue</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &DigitTok, <span class="keywordtype">unsigned</span> &Val,</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="keywordtype">unsigned</span> DiagID, <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP,</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="keywordtype">bool</span> IsGNULineDirective=<span class="keyword">false</span>) {</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> <span class="keywordflow">if</span> (DigitTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::numeric_constant)) {</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(DigitTok, DiagID);</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> </div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="keywordflow">if</span> (DigitTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod))</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> }</div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> </div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<64></a> IntegerBuffer;</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> IntegerBuffer.resize(DigitTok.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>());</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *DigitTokBegin = &IntegerBuffer[0];</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="keywordtype">unsigned</span> ActualLength = PP.<a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(DigitTok, DigitTokBegin, &Invalid);</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> <span class="keywordflow">return</span> <span class="keyword">true</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> <span class="comment">// Verify that we have a simple digit-sequence, and compute the value. This</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="comment">// is always a simple digit string computed in decimal, so we do this manually</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="comment">// here.</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> Val = 0;</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != ActualLength; ++i) {</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="comment">// C++1y [lex.fcon]p1:</span></div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="comment">// Optional separating single quotes in a digit-sequence are ignored</span></div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="keywordflow">if</span> (DigitTokBegin[i] == <span class="charliteral">'\''</span>)</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> </div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="keywordflow">if</span> (!<a class="code" href="namespaceclang.html#a8e582a38f36d9c625d3e31bce653befe" title="Return true if this character is an ASCII digit: [0-9].">isDigit</a>(DigitTokBegin[i])) {</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PP.<a class="code" href="classclang_1_1Preprocessor.html#a1c2402f6b2e6d81788d7c8c445f8e62f">AdvanceToTokenCharacter</a>(DigitTok.<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>(), i),</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> diag::err_pp_line_digit_sequence) << IsGNULineDirective;</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> }</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> </div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> <span class="keywordtype">unsigned</span> NextVal = Val*10+(DigitTokBegin[i]-<span class="charliteral">'0'</span>);</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="keywordflow">if</span> (NextVal < Val) { <span class="comment">// overflow.</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(DigitTok, DiagID);</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> }</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> Val = NextVal;</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> }</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="keywordflow">if</span> (DigitTokBegin[0] == <span class="charliteral">'0'</span> && Val)</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(DigitTok.<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::warn_pp_line_decimal)</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> << IsGNULineDirective;</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">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> }</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="comment"></span></div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="comment">/// \brief Handle a \#line directive: C99 6.10.4.</span></div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="comment">/// The two acceptable forms are:</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="comment">/// \verbatim</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="comment">/// # line digit-sequence</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="comment">/// # line digit-sequence "s-char-sequence"</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="comment">/// \endverbatim</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleLineDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="comment">// Read the line # and string argument. Per C99 6.10.4p5, these tokens are</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <span class="comment">// expanded.</span></div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <a class="code" href="classclang_1_1Token.html">Token</a> DigitTok;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(DigitTok);</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="comment">// Validate the number and convert it to an unsigned.</span></div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="keywordtype">unsigned</span> LineNo;</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="keywordflow">if</span> (<a class="code" href="PPDirectives_8cpp.html#a864e5ea6da89d06a9603b93beeded5e1">GetLineValue</a>(DigitTok, LineNo, diag::err_pp_line_requires_integer,*<span class="keyword">this</span>))</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> </div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="keywordflow">if</span> (LineNo == 0)</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(DigitTok, diag::ext_pp_line_zero);</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="comment">// Enforce C99 6.10.4p3: "The digit sequence shall not specify ... a</span></div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="comment">// number greater than 2147483647". C90 requires that the line # be <= 32767.</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="keywordtype">unsigned</span> LineLimit = 32768U;</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <span class="keywordflow">if</span> (LangOpts.C99 || LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> LineLimit = 2147483648U;</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <span class="keywordflow">if</span> (LineNo >= LineLimit)</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(DigitTok, diag::ext_pp_line_too_big) << LineLimit;</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LangOpts.CPlusPlus11 && LineNo >= 32768U)</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(DigitTok, diag::warn_cxx98_compat_pp_line_too_big);</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> </div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="keywordtype">int</span> FilenameID = -1;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <a class="code" href="classclang_1_1Token.html">Token</a> StrTok;</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(StrTok);</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> </div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> <span class="comment">// If the StrTok is "eod", then it wasn't present. Otherwise, it must be a</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="comment">// string followed by eod.</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="keywordflow">if</span> (StrTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod))</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> ; <span class="comment">// ok</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (StrTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::string_literal)) {</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrTok, diag::err_pp_line_invalid_filename);</div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (StrTok.<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="l00985"></a><span class="lineno"> 985</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrTok, diag::err_invalid_string_udl);</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="comment">// Parse and validate the string, converting it into a unique ID.</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <a class="code" href="classclang_1_1StringLiteralParser.html">StringLiteralParser</a> Literal(&StrTok, 1, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> assert(Literal.isAscii() && <span class="stringliteral">"Didn't allow wide strings in"</span>);</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="keywordflow">if</span> (Literal.hadError)</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="keywordflow">if</span> (Literal.Pascal) {</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrTok, diag::err_pp_linemarker_invalid_filename);</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> }</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> FilenameID = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa55166cfda7909fca46877f4c85580ec" title="Return the uniqued ID for the specified filename.">getLineTableFilenameID</a>(Literal.GetString());</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> </div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="comment">// Verify that there is nothing after the string, other than EOD. Because</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment">// of C99 6.10.4p5, macros that expand to empty tokens are ok.</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"line"</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> }</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> </div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a040ac45727775e7bf14d8bfca2c5677e" title="Add a line note to the line table for the FileID and offset specified by Loc.">AddLineNote</a>(DigitTok.<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>(), LineNo, FilenameID);</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a78301b4ade3244c79b9731a58f115934" title="Callback invoked whenever a source file is entered or exited.">FileChanged</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>(),</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464eaa8be07d986188367425d046a2cee13ef">PPCallbacks::RenameFile</a>,</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>);</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> }</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment"></span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment">/// ReadLineMarkerFlags - Parse and validate any flags at the end of a GNU line</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment">/// marker directive.</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"><a class="code" href="PPDirectives_8cpp.html#a75755b5b06864759d076232df28e79f4"> 1014</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPDirectives_8cpp.html#a75755b5b06864759d076232df28e79f4">ReadLineMarkerFlags</a>(<span class="keywordtype">bool</span> &IsFileEntry, <span class="keywordtype">bool</span> &IsFileExit,</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="keywordtype">bool</span> &IsSystemHeader, <span class="keywordtype">bool</span> &IsExternCHeader,</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="keywordtype">unsigned</span> FlagVal;</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <a class="code" href="classclang_1_1Token.html">Token</a> FlagTok;</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(FlagTok);</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="keywordflow">if</span> (FlagTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="keywordflow">if</span> (<a class="code" href="PPDirectives_8cpp.html#a864e5ea6da89d06a9603b93beeded5e1">GetLineValue</a>(FlagTok, FlagVal, diag::err_pp_linemarker_invalid_flag, PP))</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="keywordflow">if</span> (FlagVal == 1) {</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> IsFileEntry = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> </div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(FlagTok);</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="keywordflow">if</span> (FlagTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="keywordflow">if</span> (<a class="code" href="PPDirectives_8cpp.html#a864e5ea6da89d06a9603b93beeded5e1">GetLineValue</a>(FlagTok, FlagVal, diag::err_pp_linemarker_invalid_flag,PP))</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (FlagVal == 2) {</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> IsFileExit = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <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="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a> = PP.<a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>();</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">// If we are leaving the current presumed file, check to make sure the</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment">// presumed include stack isn't empty!</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</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> CurFileID =</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> SM.<a class="code" href="classclang_1_1SourceManager.html#a842245e962ddcee1eaa42b13727adc81" title="Decompose the specified location into a raw FileID + Offset pair.">getDecomposedExpansionLoc</a>(FlagTok.<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>()).first;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <a class="code" href="classclang_1_1PresumedLoc.html" title="Represents an unpacked "presumed" location which can be presented to the user.">PresumedLoc</a> PLoc = SM.<a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(FlagTok.<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>());</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="keywordflow">if</span> (PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a1a38ca2e240338cca1b26dc06245f92c" title="Return true if this object is invalid or uninitialized.">isInvalid</a>())</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">// If there is no include loc (main file) or if the include loc is in a</span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">// different physical file, then we aren't in a "1" line marker flag region.</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</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> IncLoc = PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a49a829eb782c4ad756c4131fd138b914" title="Return the presumed include location of this location.">getIncludeLoc</a>();</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="keywordflow">if</span> (IncLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>() ||</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> SM.<a class="code" href="classclang_1_1SourceManager.html#a842245e962ddcee1eaa42b13727adc81" title="Decompose the specified location into a raw FileID + Offset pair.">getDecomposedExpansionLoc</a>(IncLoc).first != CurFileID) {</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FlagTok, diag::err_pp_linemarker_invalid_pop);</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> }</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> </div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(FlagTok);</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="keywordflow">if</span> (FlagTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="keywordflow">if</span> (<a class="code" href="PPDirectives_8cpp.html#a864e5ea6da89d06a9603b93beeded5e1">GetLineValue</a>(FlagTok, FlagVal, diag::err_pp_linemarker_invalid_flag,PP))</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">// We must have 3 if there are still flags.</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="keywordflow">if</span> (FlagVal != 3) {</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FlagTok, diag::err_pp_linemarker_invalid_flag);</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> }</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> </div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> IsSystemHeader = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(FlagTok);</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="keywordflow">if</span> (FlagTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="keywordflow">if</span> (<a class="code" href="PPDirectives_8cpp.html#a864e5ea6da89d06a9603b93beeded5e1">GetLineValue</a>(FlagTok, FlagVal, diag::err_pp_linemarker_invalid_flag, PP))</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> </div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment">// We must have 4 if there is yet another flag.</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="keywordflow">if</span> (FlagVal != 4) {</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FlagTok, diag::err_pp_linemarker_invalid_flag);</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> }</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> </div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> IsExternCHeader = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> </div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(FlagTok);</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="keywordflow">if</span> (FlagTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) <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> <span class="comment">// There are no more valid flags here.</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FlagTok, diag::err_pp_linemarker_invalid_flag);</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> }</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment"></span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment">/// HandleDigitDirective - Handle a GNU line marker directive, whose syntax is</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment">/// one of the following forms:</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment">/// # 42</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">/// # 42 "file" ('1' | '2')?</span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">/// # 42 "file" ('1' | '2')? '3' '4'?</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"></span><span class="keywordtype">void</span> Preprocessor::HandleDigitDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &DigitTok) {</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">// Validate the number and convert it to an unsigned. GNU does not have a</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment">// line # limit other than it fit in 32-bits.</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="keywordtype">unsigned</span> LineNo;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="keywordflow">if</span> (<a class="code" href="PPDirectives_8cpp.html#a864e5ea6da89d06a9603b93beeded5e1">GetLineValue</a>(DigitTok, LineNo, diag::err_pp_linemarker_requires_integer,</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> *<span class="keyword">this</span>, <span class="keyword">true</span>))</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> </div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <a class="code" href="classclang_1_1Token.html">Token</a> StrTok;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(StrTok);</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> </div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="keywordtype">bool</span> IsFileEntry = <span class="keyword">false</span>, IsFileExit = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="keywordtype">bool</span> IsSystemHeader = <span class="keyword">false</span>, IsExternCHeader = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="keywordtype">int</span> FilenameID = -1;</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> </div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment">// If the StrTok is "eod", then it wasn't present. Otherwise, it must be a</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">// string followed by eod.</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="keywordflow">if</span> (StrTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod))</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> ; <span class="comment">// ok</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (StrTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::string_literal)) {</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrTok, diag::err_pp_linemarker_invalid_filename);</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (StrTok.<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="l01121"></a><span class="lineno"> 1121</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrTok, diag::err_invalid_string_udl);</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment">// Parse and validate the string, converting it into a unique ID.</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <a class="code" href="classclang_1_1StringLiteralParser.html">StringLiteralParser</a> Literal(&StrTok, 1, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> assert(Literal.isAscii() && <span class="stringliteral">"Didn't allow wide strings in"</span>);</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="keywordflow">if</span> (Literal.hadError)</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="keywordflow">if</span> (Literal.Pascal) {</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrTok, diag::err_pp_linemarker_invalid_filename);</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> }</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> FilenameID = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa55166cfda7909fca46877f4c85580ec" title="Return the uniqued ID for the specified filename.">getLineTableFilenameID</a>(Literal.GetString());</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> </div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment">// If a filename was present, read any flags that are present.</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="keywordflow">if</span> (<a class="code" href="PPDirectives_8cpp.html#a75755b5b06864759d076232df28e79f4">ReadLineMarkerFlags</a>(IsFileEntry, IsFileExit,</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> IsSystemHeader, IsExternCHeader, *<span class="keyword">this</span>))</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">// Create a line note with this information.</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a040ac45727775e7bf14d8bfca2c5677e" title="Add a line note to the line table for the FileID and offset specified by Loc.">AddLineNote</a>(DigitTok.<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>(), LineNo, FilenameID,</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> IsFileEntry, IsFileExit,</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> IsSystemHeader, IsExternCHeader);</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> </div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment">// If the preprocessor has callbacks installed, notify them of the #line</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment">// change. This is used so that the line marker comes out in -E mode for</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment">// example.</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="keywordflow">if</span> (Callbacks) {</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464e">PPCallbacks::FileChangeReason</a> Reason = <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464eaa8be07d986188367425d046a2cee13ef">PPCallbacks::RenameFile</a>;</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="keywordflow">if</span> (IsFileEntry)</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> Reason = <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464ea49a706f5a1cf44ae7f0396dc8e5af5dc">PPCallbacks::EnterFile</a>;</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IsFileExit)</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> Reason = <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464ea7da6c0bdb4ba52515ca45964da83e7ea">PPCallbacks::ExitFile</a>;</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> FileKind = <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>;</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="keywordflow">if</span> (IsExternCHeader)</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> FileKind = <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35da9023f6ef1ca01526b946dd690e56d951">SrcMgr::C_ExternCSystem</a>;</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IsSystemHeader)</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> FileKind = <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dac3b930a303c855d8864c56fcc992074e">SrcMgr::C_System</a>;</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> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a78301b4ade3244c79b9731a58f115934" title="Callback invoked whenever a source file is entered or exited.">FileChanged</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>(), Reason, FileKind);</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> }</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> }</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment"></span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment">/// HandleUserDiagnosticDirective - Handle a #warning or #error directive.</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleUserDiagnosticDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok,</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="keywordtype">bool</span> isWarning) {</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment">// PTH doesn't emit #warning or #error directives.</span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="keywordflow">if</span> (CurPTHLexer)</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="keywordflow">return</span> CurPTHLexer->DiscardToEndOfLine();</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> </div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">// Read the rest of the line raw. We do this because we don't want macros</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment">// to be expanded and we don't require that the tokens be valid preprocessing</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment">// tokens. For example, this is allowed: "#warning ` 'foo". GCC does</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment">// collapse multiple consequtive white space between tokens, but this isn't</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment">// specified by the standard.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> Message;</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> CurLexer->ReadToEndOfLine(&Message);</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> </div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment">// Find the first non-whitespace character, so that we can make the</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment">// diagnostic more succinct.</span></div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> StringRef Msg = Message.str().ltrim(<span class="stringliteral">" "</span>);</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> </div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="keywordflow">if</span> (isWarning)</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::pp_hash_warning) << Msg;</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_hash_error) << Msg;</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> }</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment"></span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment">/// HandleIdentSCCSDirective - Handle a #ident/#sccs directive.</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleIdentSCCSDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment">// Yes, this directive is an extension.</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_pp_ident_directive);</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> </div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment">// Read the string argument.</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <a class="code" href="classclang_1_1Token.html">Token</a> StrTok;</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(StrTok);</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">// If the token kind isn't a string, it's a malformed directive.</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="keywordflow">if</span> (StrTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::string_literal) &&</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> StrTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::wide_string_literal)) {</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrTok, diag::err_pp_malformed_ident);</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="keywordflow">if</span> (StrTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod))</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> }</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> </div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="keywordflow">if</span> (StrTok.<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="l01212"></a><span class="lineno"> 1212</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrTok, diag::err_invalid_string_udl);</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</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> </div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment">// Verify that there is nothing after the string, other than EOD.</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"ident"</span>);</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> </div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="keywordflow">if</span> (Callbacks) {</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> std::string Str = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(StrTok, &Invalid);</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="keywordflow">if</span> (!Invalid)</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a3683f1d1fa513e9b6193d446a5cc2b66" title="Callback invoked when a #ident or #sccs directive is read.">Ident</a>(Tok.<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>(), Str);</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> }</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> }</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment"></span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">/// \brief Handle a #public directive.</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleMacroPublicDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <a class="code" href="classclang_1_1Token.html">Token</a> MacroNameTok;</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> ReadMacroName(MacroNameTok, 2);</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> </div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment">// Error reading macro name? If so, diagnostic already issued.</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="keywordflow">if</span> (MacroNameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod))</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> </div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment">// Check to see if this is the last token on the #__public_macro line.</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"__public_macro"</span>);</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> </div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment">// Okay, we finally have a valid identifier to undef.</span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD = <a class="code" href="classclang_1_1Preprocessor.html#a23a93e29cd30864017b909e27875390d" title="Given an identifier, return its latest MacroDirective if it is.">getMacroDirective</a>(II);</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">// If the macro is not defined, this is an error.</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="keywordflow">if</span> (MD == 0) {</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroNameTok, diag::err_pp_visibility_non_macro) << II;</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> }</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> </div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment">// Note that this macro has now been exported.</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <a class="code" href="classclang_1_1Preprocessor.html#aff92a28cdfbaae74c5669b8eb5af7004" title="Add a directive to the macro directive history for this identifier.">appendMacroDirective</a>(II, AllocateVisibilityMacroDirective(</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> MacroNameTok.<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>(), <span class="comment">/*IsPublic=*/</span><span class="keyword">true</span>));</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> }</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"></span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment">/// \brief Handle a #private directive.</span></div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleMacroPrivateDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <a class="code" href="classclang_1_1Token.html">Token</a> MacroNameTok;</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> ReadMacroName(MacroNameTok, 2);</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> </div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">// Error reading macro name? If so, diagnostic already issued.</span></div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="keywordflow">if</span> (MacroNameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod))</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> </div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">// Check to see if this is the last token on the #__private_macro line.</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"__private_macro"</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> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment">// Okay, we finally have a valid identifier to undef.</span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD = <a class="code" href="classclang_1_1Preprocessor.html#a23a93e29cd30864017b909e27875390d" title="Given an identifier, return its latest MacroDirective if it is.">getMacroDirective</a>(II);</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> </div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment">// If the macro is not defined, this is an error.</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="keywordflow">if</span> (MD == 0) {</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroNameTok, diag::err_pp_visibility_non_macro) << II;</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> }</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> </div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment">// Note that this macro has now been marked private.</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <a class="code" href="classclang_1_1Preprocessor.html#aff92a28cdfbaae74c5669b8eb5af7004" title="Add a directive to the macro directive history for this identifier.">appendMacroDirective</a>(II, AllocateVisibilityMacroDirective(</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> MacroNameTok.<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>(), <span class="comment">/*IsPublic=*/</span><span class="keyword">false</span>));</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> }</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> </div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment">// Preprocessor Include Directive Handling.</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment"></span></div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment">/// GetIncludeFilenameSpelling - Turn the specified lexer token into a fully</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">/// checked and spelled filename, e.g. as an operand of \#include. This returns</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">/// true if the input filename was in <>'s or false if it were in ""'s. The</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment">/// caller is expected to provide a buffer that is large enough to hold the</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment">/// spelling of the filename, but is also expected to handle the case when</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment">/// this method decides to use a different buffer.</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a231c406d19ba3f00b27fec221dc23932"> 1291</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Preprocessor.html#a231c406d19ba3f00b27fec221dc23932" title="Turn the specified lexer token into a fully checked and spelled filename, e.g. as an operand of #incl...">Preprocessor::GetIncludeFilenameSpelling</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,</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> StringRef &Buffer) {</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment">// Get the text form of the filename.</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> assert(!Buffer.empty() && <span class="stringliteral">"Can't have tokens with empty spellings!"</span>);</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> </div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">// Make sure the filename is <x> or "x".</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="keywordtype">bool</span> isAngled;</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="keywordflow">if</span> (Buffer[0] == <span class="charliteral">'<'</span>) {</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="keywordflow">if</span> (Buffer.back() != <span class="charliteral">'>'</span>) {</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Loc, diag::err_pp_expects_filename);</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> Buffer = StringRef();</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="keywordflow">return</span> <span class="keyword">true</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> isAngled = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Buffer[0] == <span class="charliteral">'"'</span>) {</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="keywordflow">if</span> (Buffer.back() != <span class="charliteral">'"'</span>) {</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Loc, diag::err_pp_expects_filename);</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> Buffer = StringRef();</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> }</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> isAngled = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Loc, diag::err_pp_expects_filename);</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> Buffer = StringRef();</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> }</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> </div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment">// Diagnose #include "" as invalid.</span></div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="keywordflow">if</span> (Buffer.size() <= 2) {</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Loc, diag::err_pp_empty_filename);</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> Buffer = StringRef();</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment">// Skip the brackets.</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> Buffer = Buffer.substr(1, Buffer.size()-2);</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="keywordflow">return</span> isAngled;</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="comment"></span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">/// \brief Handle cases where the \#include name is expanded from a macro</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment">/// as multiple tokens, which need to be glued together.</span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="comment">/// This occurs for code like:</span></div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment">/// \#define FOO <a/b.h></span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="comment">/// \#include FOO</span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="comment">/// because in this case, "<a/b.h>" is returned as 7 tokens, not one.</span></div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment">/// This code concatenates and consumes tokens up to the '>' token. It returns</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="comment">/// false if the > was found, otherwise it returns true if it finds and consumes</span></div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="comment">/// the EOD marker.</span></div>
+<div class="line"><a name="l01343"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a0d02b408c3b83f24306e3ef44a1f798b"> 1343</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Preprocessor.html#a0d02b408c3b83f24306e3ef44a1f798b" title="Handle cases where the #include name is expanded from a macro as multiple tokens, which need to be gl...">Preprocessor::ConcatenateIncludeName</a>(</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> &FilenameBuffer,</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</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> &End) {</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <a class="code" href="classclang_1_1Token.html">Token</a> CurTok;</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> </div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(CurTok);</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="keywordflow">while</span> (CurTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod)) {</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> End = CurTok.<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>();</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> </div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="comment">// FIXME: Provide code completion for #includes.</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="keywordflow">if</span> (CurTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion)) {</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <a class="code" href="classclang_1_1Preprocessor.html#a46fc08613cbf552886ad9ac01cf4b6c1" title="Note that we hit the code-completion point.">setCodeCompletionReached</a>();</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(CurTok);</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="keywordflow">continue</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> </div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment">// Append the spelling of this token to the buffer. If there was a space</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment">// before it, add it now.</span></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="keywordflow">if</span> (CurTok.<a class="code" href="classclang_1_1Token.html#aa83b4bb0309d617e936a122e85958b22" title="Return true if this token has whitespace before it.">hasLeadingSpace</a>())</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> FilenameBuffer.push_back(<span class="charliteral">' '</span>);</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> </div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment">// Get the spelling of the token, directly into FilenameBuffer if possible.</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="keywordtype">unsigned</span> PreAppendSize = FilenameBuffer.size();</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> FilenameBuffer.resize(PreAppendSize+CurTok.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>());</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> </div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *BufPtr = &FilenameBuffer[PreAppendSize];</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="keywordtype">unsigned</span> ActualLen = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(CurTok, BufPtr);</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> </div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="comment">// If the token was spelled somewhere else, copy it into FilenameBuffer.</span></div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="keywordflow">if</span> (BufPtr != &FilenameBuffer[PreAppendSize])</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> memcpy(&FilenameBuffer[PreAppendSize], BufPtr, ActualLen);</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> </div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="comment">// Resize FilenameBuffer to the correct size.</span></div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> <span class="keywordflow">if</span> (CurTok.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>() != ActualLen)</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> FilenameBuffer.resize(PreAppendSize+ActualLen);</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> </div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <span class="comment">// If we found the '>' marker, return success.</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="keywordflow">if</span> (CurTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::greater))</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="keywordflow">return</span> <span class="keyword">false</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> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(CurTok);</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> }</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> </div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="comment">// If we hit the eod marker, emit an error and return true so that the caller</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment">// knows the EOD has been read.</span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(CurTok.<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_pp_expects_filename);</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> }</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment"></span></div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment">/// HandleIncludeDirective - The "\#include" tokens have just been read, read</span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment">/// the file to be included from the lexer, then include it! This is a common</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment">/// routine with functionality shared between \#include, \#include_next and</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">/// \#import. LookupFrom is set when this is a \#include_next directive, it</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment">/// specifies the file to start searching from.</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleIncludeDirective(<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> HashLoc, </div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <a class="code" href="classclang_1_1Token.html">Token</a> &IncludeTok,</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *LookupFrom,</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="keywordtype">bool</span> isImport) {</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> </div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <a class="code" href="classclang_1_1Token.html">Token</a> FilenameTok;</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a0c0bbb460799347ef2b9a1b92fd8524a" title="After the preprocessor has parsed a #include, lex and (potentially) macro expand the filename...">LexIncludeFilename</a>(FilenameTok);</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> </div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment">// Reserve a buffer to get the spelling.</span></div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> FilenameBuffer;</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> StringRef Filename;</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</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> End;</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</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> CharEnd; <span class="comment">// the end of this directive, in characters</span></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="keywordflow">switch</span> (FilenameTok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="keywordflow">case</span> tok::eod:</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment">// If the token kind is EOD, the error has already been diagnosed.</span></div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> </div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="keywordflow">case</span> tok::angle_string_literal:</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="keywordflow">case</span> tok::string_literal:</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> Filename = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(FilenameTok, FilenameBuffer);</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> End = FilenameTok.<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>();</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> CharEnd = End.<a class="code" href="classclang_1_1SourceLocation.html#a1abf1cac74e512604b1f2c8921a446fa" title="Return a source location with the specified offset from this SourceLocation.">getLocWithOffset</a>(FilenameTok.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>());</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> </div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="keywordflow">case</span> tok::less:</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="comment">// This could be a <foo/bar.h> file coming from a macro expansion. In this</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="comment">// case, glue the tokens together into FilenameBuffer and interpret those.</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> FilenameBuffer.push_back(<span class="charliteral">'<'</span>);</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a0d02b408c3b83f24306e3ef44a1f798b" title="Handle cases where the #include name is expanded from a macro as multiple tokens, which need to be gl...">ConcatenateIncludeName</a>(FilenameBuffer, End))</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> <span class="keywordflow">return</span>; <span class="comment">// Found <eod> but no ">"? Diagnostic already emitted.</span></div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> Filename = FilenameBuffer.str();</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> CharEnd = End.<a class="code" href="classclang_1_1SourceLocation.html#a1abf1cac74e512604b1f2c8921a446fa" title="Return a source location with the specified offset from this SourceLocation.">getLocWithOffset</a>(1);</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameTok.<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_pp_expects_filename);</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> }</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> </div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> <a class="code" href="classclang_1_1CharSourceRange.html" title="Represents a character-granular source range.">CharSourceRange</a> FilenameRange</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> = <a class="code" href="classclang_1_1CharSourceRange.html#a3a85bd6fe56a23b41680fb7893ce8e2e">CharSourceRange::getCharRange</a>(FilenameTok.<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>(), CharEnd);</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> StringRef OriginalFilename = Filename;</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="keywordtype">bool</span> isAngled =</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <a class="code" href="classclang_1_1Preprocessor.html#a231c406d19ba3f00b27fec221dc23932" title="Turn the specified lexer token into a fully checked and spelled filename, e.g. as an operand of #incl...">GetIncludeFilenameSpelling</a>(FilenameTok.<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>(), Filename);</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> <span class="comment">// If GetIncludeFilenameSpelling set the start ptr to null, there was an</span></div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="comment">// error.</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="keywordflow">if</span> (Filename.empty()) {</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> }</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> </div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="comment">// Verify that there is nothing after the filename, other than EOD. Note that</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="comment">// we allow macros that expand to nothing after the filename, because this</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="comment">// falls into the category of "#include pp-tokens new-line" specified in</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="comment">// C99 6.10.2p4.</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(IncludeTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#ae69779507a5e059eecf91dcfcee5d958" title="Return the beginning of the actual null-terminated string for this identifier.">getNameStart</a>(), <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> </div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="comment">// Check that we don't have infinite #include recursion.</span></div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> <span class="keywordflow">if</span> (IncludeMacroStack.size() == MaxAllowedIncludeStackDepth-1) {</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameTok, diag::err_pp_include_too_deep);</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> }</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> </div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> <span class="comment">// Complain about attempts to #include files in an audit pragma.</span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="keywordflow">if</span> (PragmaARCCFCodeAuditedLoc.<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="l01464"></a><span class="lineno"> 1464</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(HashLoc, diag::err_pp_include_in_arc_cf_code_audited);</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaARCCFCodeAuditedLoc, diag::note_pragma_entered_here);</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> </div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="comment">// Immediately leave the pragma.</span></div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> PragmaARCCFCodeAuditedLoc = <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="l01469"></a><span class="lineno"> 1469</span> }</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> </div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> <span class="keywordflow">if</span> (HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a286f7048b35f5af3eeb46f940e563736" title="Checks whether the map exists or not.">HasIncludeAliasMap</a>()) {</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> <span class="comment">// Map the filename with the brackets still attached. If the name doesn't </span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> <span class="comment">// map to anything, fall back on the filename we've already gotten the </span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <span class="comment">// spelling for.</span></div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> StringRef NewName = HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#af02f0b6902f59ca0c55659e340754cc6">MapHeaderToIncludeAlias</a>(OriginalFilename);</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> <span class="keywordflow">if</span> (!NewName.empty())</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> Filename = NewName;</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> }</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> </div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> <span class="comment">// Search include directories.</span></div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *CurDir;</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<1024></a> SearchPath;</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<1024></a> RelativePath;</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> <span class="comment">// We get the raw path only if we have 'Callbacks' to which we later pass</span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="comment">// the path.</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</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> SuggestedModule;</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</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 = FilenameTok.<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>();</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</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 = <a class="code" href="classclang_1_1Preprocessor.html#abaaffb22cc7abb1535773930ec1e5cfb" title="Given a "foo" or <foo> reference, look up the indicated file.">LookupFile</a>(</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> FilenameLoc, Filename, isAngled, LookupFrom, CurDir,</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> Callbacks ? &SearchPath : <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, Callbacks ? &RelativePath : NULL,</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a2987826005bf4f311ff97f2a54503010" title="Retrieve the header-search options with which this header search was initialized.">getHeaderSearchOpts</a>().<a class="code" href="classclang_1_1HeaderSearchOptions.html#a345ccf6903b35488958d5a0cc54862bd" title="Interpret module maps. This option is implied by full modules.">ModuleMaps</a> ? &SuggestedModule : 0);</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> </div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="keywordflow">if</span> (Callbacks) {</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> <span class="keywordflow">if</span> (!File) {</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> <span class="comment">// Give the clients a chance to recover.</span></div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> RecoveryPath;</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> <span class="keywordflow">if</span> (Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a3045151545f987256bfa8d978916ef00" title="Callback invoked whenever an inclusion directive results in a file-not-found error.">FileNotFound</a>(Filename, RecoveryPath)) {</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</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> *DE = FileMgr.<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(RecoveryPath)) {</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> <span class="comment">// Add the recovery path to the list of search paths.</span></div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> DL(DE, <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#aff9a70dc2b1e2681fe43b3098d3afddd" title="Add an additional search path.">AddSearchPath</a>(DL, isAngled);</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> </div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> <span class="comment">// Try the lookup again, skipping the cache.</span></div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> File = <a class="code" href="classclang_1_1Preprocessor.html#abaaffb22cc7abb1535773930ec1e5cfb" title="Given a "foo" or <foo> reference, look up the indicated file.">LookupFile</a>(FilenameLoc, Filename, isAngled, LookupFrom, CurDir,</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> 0, 0, HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a2987826005bf4f311ff97f2a54503010" title="Retrieve the header-search options with which this header search was initialized.">getHeaderSearchOpts</a>().<a class="code" href="classclang_1_1HeaderSearchOptions.html#a345ccf6903b35488958d5a0cc54862bd" title="Interpret module maps. This option is implied by full modules.">ModuleMaps</a></div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> ? &SuggestedModule</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> : 0,</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> <span class="comment">/*SkipCache*/</span> <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> }</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> }</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> }</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> </div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> <span class="keywordflow">if</span> (!SuggestedModule || !<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().Modules) {</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="comment">// Notify the callback object that we've seen an inclusion directive.</span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a557d9738c329793513a6f57d6b60de52" title="Callback invoked whenever an inclusion directive of any kind (#include, #import, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.">InclusionDirective</a>(HashLoc, IncludeTok, Filename, isAngled,</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> FilenameRange, File,</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> SearchPath, RelativePath,</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="comment">/*ImportedModule=*/</span>0);</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> }</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> }</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> </div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="keywordflow">if</span> (File == 0) {</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="keywordflow">if</span> (!SuppressIncludeNotFoundError) {</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment">// If the file could not be located and it was included via angle </span></div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="comment">// brackets, we can attempt a lookup as though it were a quoted path to</span></div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> <span class="comment">// provide the user with a possible fixit.</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="keywordflow">if</span> (isAngled) {</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> File = <a class="code" href="classclang_1_1Preprocessor.html#abaaffb22cc7abb1535773930ec1e5cfb" title="Given a "foo" or <foo> reference, look up the indicated file.">LookupFile</a>(</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> FilenameLoc, Filename, <span class="keyword">false</span>, LookupFrom, CurDir,</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> Callbacks ? &SearchPath : 0, Callbacks ? &RelativePath : 0,</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a2987826005bf4f311ff97f2a54503010" title="Retrieve the header-search options with which this header search was initialized.">getHeaderSearchOpts</a>().<a class="code" href="classclang_1_1HeaderSearchOptions.html#a345ccf6903b35488958d5a0cc54862bd" title="Interpret module maps. This option is implied by full modules.">ModuleMaps</a> ? &SuggestedModule : 0);</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> <span class="keywordflow">if</span> (File) {</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range(FilenameTok.<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>(), CharEnd);</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameTok, diag::err_pp_file_not_found_not_fatal) << </div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> Filename << </div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(Range, <span class="stringliteral">"\""</span> + Filename.str() + <span class="stringliteral">"\""</span>);</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> }</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> }</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> <span class="comment">// If the file is still not found, just go with the vanilla diagnostic</span></div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> <span class="keywordflow">if</span> (!File)</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameTok, diag::err_pp_file_not_found) << Filename;</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="keywordflow">if</span> (!File)</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> }</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> </div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> <span class="comment">// If we are supposed to import a module rather than including the header,</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="comment">// do so now.</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> <span class="keywordflow">if</span> (SuggestedModule && <a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().Modules) {</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> <span class="comment">// Compute the module access path corresponding to this module.</span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> <span class="comment">// FIXME: Should we have a second loadModule() overload to avoid this</span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> <span class="comment">// extra lookup step?</span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::pair<IdentifierInfo *, SourceLocation></a>, 2> Path;</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod = SuggestedModule.<a class="code" href="classclang_1_1ModuleMap_1_1KnownHeader.html#a7b62eee1d73659d194a543a83256c9f5" title="Retrieve the module the header is stored in.">getModule</a>(); 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="l01555"></a><span class="lineno"> 1555</span> Path.push_back(std::make_pair(<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(Mod->Name),</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> FilenameTok.<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>()));</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> std::reverse(Path.begin(), Path.end());</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span> </div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> <span class="comment">// Warn that we're replacing the include/import with a module import.</span></div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> PathString;</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Path.size(); I != N; ++I) {</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> <span class="keywordflow">if</span> (I)</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> PathString += <span class="charliteral">'.'</span>;</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> PathString += Path[I].first->getName();</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> <span class="keywordtype">int</span> IncludeKind = 0;</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> </div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> <span class="keywordflow">switch</span> (IncludeTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#ae11e3e149e73feb580d57400c96154c5" title="Return the preprocessor keyword ID for this identifier.">getPPKeywordID</a>()) {</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> <span class="keywordflow">case</span> tok::pp_include:</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> IncludeKind = 0;</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> </div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> <span class="keywordflow">case</span> tok::pp_import:</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> IncludeKind = 1;</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> <span class="keywordflow">break</span>; </div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> </div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> <span class="keywordflow">case</span> tok::pp_include_next:</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> IncludeKind = 2;</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> </div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> <span class="keywordflow">case</span> tok::pp___include_macros:</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> IncludeKind = 3;</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> </div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> llvm_unreachable(<span class="stringliteral">"unknown include directive kind"</span>);</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> }</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> </div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="comment">// Determine whether we are actually building the module that this</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> <span class="comment">// include directive maps to.</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> <span class="keywordtype">bool</span> BuildingImportedModule</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> = Path[0].first->getName() == <a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a>;</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> </div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> <span class="keywordflow">if</span> (!BuildingImportedModule && <a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().ObjC2) {</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> <span class="comment">// If we're not building the imported module, warn that we're going</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> <span class="comment">// to automatically turn this inclusion directive into a module import.</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="comment">// We only do this in Objective-C, where we have a module-import syntax.</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> <a class="code" href="classclang_1_1CharSourceRange.html" title="Represents a character-granular source range.">CharSourceRange</a> ReplaceRange(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(HashLoc, CharEnd), </div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> <span class="comment">/*IsTokenRange=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(HashLoc, diag::warn_auto_module_import)</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> << IncludeKind << PathString </div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> << <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(ReplaceRange,</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> <span class="stringliteral">"@import "</span> + PathString.str().str() + <span class="stringliteral">";"</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> </div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> <span class="comment">// Load the module. Only make macros visible. We'll make the declarations</span></div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="comment">// visible when the parser gets here.</span></div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67" title="Describes the visibility of the various names within a particular module.">Module::NameVisibilityKind</a> <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a> = <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67add78e40d0215633fda3035b44bbc13bb" title="Only the macro names in this module are visible.">Module::MacrosVisible</a>;</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <a class="code" href="classclang_1_1ModuleLoadResult.html" title="Describes the result of attempting to load a module.">ModuleLoadResult</a> Imported</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> = TheModuleLoader.<a class="code" href="classclang_1_1ModuleLoader.html#a5bc95ba1a540213d8befdc42770d3ac8" title="Attempt to load the given module.">loadModule</a>(IncludeTok.<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>(), Path, <a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>,</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> <span class="comment">/*IsIncludeDirective=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> assert((Imported == 0 || Imported == SuggestedModule.<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="l01613"></a><span class="lineno"> 1613</span> <span class="stringliteral">"the imported module is different than the suggested one"</span>);</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> </div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> <span class="keywordflow">if</span> (!Imported && <a class="code" href="classclang_1_1Preprocessor.html#ae1c1e103bc4604974fae1cfb5df84bc8">hadModuleLoaderFatalFailure</a>()) {</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> <span class="comment">// With a fatal failure in the module loader, we abort parsing.</span></div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Result = IncludeTok;</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> <span class="keywordflow">if</span> (CurLexer) {</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> Result.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> CurLexer->FormTokenWithChars(Result, CurLexer->BufferEnd, <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>);</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> CurLexer->cutOffLexing();</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> assert(CurPTHLexer && <span class="stringliteral">"#include but no current lexer set!"</span>);</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> CurPTHLexer->getEOF(Result);</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> }</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> }</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> </div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> <span class="comment">// If this header isn't part of the module we're building, we're done.</span></div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> <span class="keywordflow">if</span> (!BuildingImportedModule && Imported) {</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> <span class="keywordflow">if</span> (Callbacks) {</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a557d9738c329793513a6f57d6b60de52" title="Callback invoked whenever an inclusion directive of any kind (#include, #import, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.">InclusionDirective</a>(HashLoc, IncludeTok, Filename, isAngled,</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> FilenameRange, File,</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> SearchPath, RelativePath, Imported);</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> }</div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> </div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> <span class="keywordflow">if</span> (IncludeKind != 3) {</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> <span class="comment">// Let the parser know that we hit a module import, and it should</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> <span class="comment">// make the module visible.</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="comment">// FIXME: Produce this as the current token directly, rather than</span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> <span class="comment">// allocating a new token for it.</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> <a class="code" href="classclang_1_1Token.html">Token</a> *Tok = <span class="keyword">new</span> <a class="code" href="classclang_1_1Token.html">Token</a>[1];</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> Tok[0].<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> Tok[0].<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::annot_module_include);</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> Tok[0].<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(HashLoc);</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> Tok[0].<a class="code" href="classclang_1_1Token.html#a099e5c28a0dd559fc4483a30976b51af">setAnnotationEndLoc</a>(End);</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> Tok[0].<a class="code" href="classclang_1_1Token.html#acb46f6c2251512aae2c5772e88cc34b3">setAnnotationValue</a>(Imported);</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> <a class="code" href="classclang_1_1Preprocessor.html#a4869ffa7c1268e6e7cbd8fd5b7b0364d">EnterTokenStream</a>(Tok, 1, <span class="keyword">true</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> }</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> }</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> </div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> <span class="comment">// If we failed to find a submodule that we expected to find, we can</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="comment">// continue. Otherwise, there's an error in the included file, so we</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="comment">// don't want to include it.</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="keywordflow">if</span> (!BuildingImportedModule && !Imported.<a class="code" href="classclang_1_1ModuleLoadResult.html#af702a9833d82caa47f92d15ea8bbeb73" title="Determines whether the module, which failed to load, was actually a submodule that we expected to see...">isMissingExpected</a>()) {</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</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">if</span> (Callbacks && SuggestedModule) {</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> <span class="comment">// We didn't notify the callback object that we've seen an inclusion</span></div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> <span class="comment">// directive before. Now that we are parsing the include normally and not</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="comment">// turning it to a module import, notify the callback object.</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a557d9738c329793513a6f57d6b60de52" title="Callback invoked whenever an inclusion directive of any kind (#include, #import, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.">InclusionDirective</a>(HashLoc, IncludeTok, Filename, isAngled,</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> FilenameRange, File,</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> SearchPath, RelativePath,</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> <span class="comment">/*ImportedModule=*/</span>0);</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> </div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <span class="comment">// The #included file will be considered to be a system header if either it is</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> <span class="comment">// in a system include directory, or if the #includer is a system include</span></div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span> <span class="comment">// header.</span></div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> FileCharacter =</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> std::max(HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a1139cf5a4faa0d4a4235cc09e241f669" title="Return whether the specified file is a normal header, a system header, or a C++ friendly system heade...">getFileDirFlavor</a>(File),</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a0a6faf535b8f3f23e64be0cb4eac99c3" title="Return the file characteristic of the specified source location, indicating whether this is a normal ...">getFileCharacteristic</a>(FilenameTok.<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>()));</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> <span class="comment">// Ask HeaderInfo if we should enter this #include file. If not, #including</span></div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> <span class="comment">// this file will have no effect.</span></div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="keywordflow">if</span> (!HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a200f5d2b2401cc74417d0028c69332e6" title="Mark the specified file as a target of of a #include, #include_next, or #import directive.">ShouldEnterIncludeFile</a>(File, isImport)) {</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#ab5b338a0670188eb05fa7685bbfb5128" title="Callback invoked whenever a source file is skipped as the result of header guard optimization.">FileSkipped</a>(*File, FilenameTok, FileCharacter);</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> }</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> </div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> <span class="comment">// Look up the file, create a File ID for it.</span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</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> IncludePos = End;</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="comment">// If the filename string was the result of macro expansions, set the include</span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> <span class="comment">// position on the file where it will be included and after the expansions.</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> <span class="keywordflow">if</span> (IncludePos.<a class="code" href="classclang_1_1SourceLocation.html#a83c660ad7c57096011c5f40c50b52c7d">isMacroID</a>())</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> IncludePos = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a532619980c29dd7590f84a8abc8dcfcc" title="Given a SourceLocation object, return the range of tokens covered by the expansion the ultimate file...">getExpansionRange</a>(IncludePos).second;</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> <a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#acefb5d310242160b1910104bbf4d8b2d" title="Create a new FileID that represents the specified file being #included from the specified IncludePosi...">createFileID</a>(File, IncludePos, FileCharacter);</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> assert(!FID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>() && <span class="stringliteral">"Expected valid file ID"</span>);</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> </div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="comment">// Finally, if all is good, enter the new file!</span></div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> <a class="code" href="classclang_1_1Preprocessor.html#a89fb5fef6b3a02bdf4683761f21983bc">EnterSourceFile</a>(FID, CurDir, FilenameTok.<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>());</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> }</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> <span class="comment"></span></div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> <span class="comment">/// HandleIncludeNextDirective - Implements \#include_next.</span></div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleIncludeNextDirective(<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> HashLoc,</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> <a class="code" href="classclang_1_1Token.html">Token</a> &IncludeNextTok) {</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(IncludeNextTok, diag::ext_pp_include_next_directive);</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> </div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> <span class="comment">// #include_next is like #include, except that we start searching after</span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> <span class="comment">// the current found directory. If we can't do this, issue a</span></div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="comment">// diagnostic.</span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *Lookup = CurDirLookup;</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#ab581c0e71888401a14771ca1d5c70612" title="Return true if we're in the top-level file, not in a #include.">isInPrimaryFile</a>()) {</div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> Lookup = 0;</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(IncludeNextTok, diag::pp_include_next_in_primary);</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Lookup == 0) {</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(IncludeNextTok, diag::pp_include_next_absolute_path);</div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment">// Start looking up in the next directory.</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> ++Lookup;</div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> }</div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> </div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> <span class="keywordflow">return</span> HandleIncludeDirective(HashLoc, IncludeNextTok, Lookup);</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"></span></div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="comment">/// HandleMicrosoftImportDirective - Implements \#import for Microsoft Mode</span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleMicrosoftImportDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> <span class="comment">// The Microsoft #import directive takes a type library and generates header</span></div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> <span class="comment">// files from it, and includes those. This is beyond the scope of what clang</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> <span class="comment">// does, so we ignore it and error out. However, #import can optionally have</span></div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> <span class="comment">// trailing attributes that span multiple lines. We're going to eat those</span></div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> <span class="comment">// so we can continue processing from there.</span></div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_import_directive_ms );</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> </div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> <span class="comment">// Read tokens until we get to the end of the directive. Note that the </span></div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> <span class="comment">// directive can be split over multiple lines using the backslash character.</span></div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</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> <span class="comment"></span></div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> <span class="comment">/// HandleImportDirective - Implements \#import.</span></div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleImportDirective(<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> HashLoc,</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> <a class="code" href="classclang_1_1Token.html">Token</a> &ImportTok) {</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> <span class="keywordflow">if</span> (!LangOpts.ObjC1) { <span class="comment">// #import is standard for ObjC.</span></div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> <span class="keywordflow">if</span> (LangOpts.MicrosoftMode)</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="keywordflow">return</span> HandleMicrosoftImportDirective(ImportTok);</div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(ImportTok, diag::ext_pp_import_directive);</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> }</div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> <span class="keywordflow">return</span> HandleIncludeDirective(HashLoc, ImportTok, 0, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> }</div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="comment"></span></div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="comment">/// HandleIncludeMacrosDirective - The -imacros command line option turns into a</span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> <span class="comment">/// pseudo directive in the predefines buffer. This handles it by sucking all</span></div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <span class="comment">/// tokens through the preprocessor and discarding them (only keeping the side</span></div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="comment">/// effects on the preprocessor).</span></div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleIncludeMacrosDirective(<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> HashLoc,</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> <a class="code" href="classclang_1_1Token.html">Token</a> &IncludeMacrosTok) {</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> <span class="comment">// This directive should only occur in the predefines buffer. If not, emit an</span></div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> <span class="comment">// error and reject it.</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</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 = IncludeMacrosTok.<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>();</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> <span class="keywordflow">if</span> (strcmp(SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#abe4f1b848fbaa9d9ce39c5ceab826965" title="Return the filename or buffer identifier of the buffer the location is in.">getBufferName</a>(Loc), <span class="stringliteral">"<built-in>"</span>) != 0) {</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(IncludeMacrosTok.<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>(),</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> diag::pp_include_macros_out_of_predefines);</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</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> <span class="comment">// Treat this as a normal #include for checking purposes. If this is</span></div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> <span class="comment">// successful, it will push a new lexer onto the include stack.</span></div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> HandleIncludeDirective(HashLoc, IncludeMacrosTok, 0, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> </div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> <a class="code" href="classclang_1_1Token.html">Token</a> TmpTok;</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(TmpTok);</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> assert(TmpTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>) && <span class="stringliteral">"Didn't find end of -imacros!"</span>);</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> } <span class="keywordflow">while</span> (TmpTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::hashhash));</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> }</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="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="comment">// Preprocessor Macro Directive Handling.</span></div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> <span class="comment"></span></div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> <span class="comment">/// ReadMacroDefinitionArgList - The ( starting an argument list of a macro</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> <span class="comment">/// definition has just been read. Lex the rest of the arguments and the</span></div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> <span class="comment">/// closing ), updating MI with what we learn. Return true if an error occurs</span></div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> <span class="comment">/// parsing the arg list.</span></div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> <span class="comment"></span><span class="keywordtype">bool</span> Preprocessor::ReadMacroDefinitionArgList(<a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI, <a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<IdentifierInfo*, 32></a> Arguments;</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> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> <span class="keywordflow">case</span> tok::r_paren:</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> <span class="comment">// Found the end of the argument list.</span></div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> <span class="keywordflow">if</span> (Arguments.empty()) <span class="comment">// #define FOO()</span></div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> <span class="comment">// Otherwise we have #define FOO(A,)</span></div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_expected_ident_in_arg_list);</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> <span class="keywordflow">case</span> tok::ellipsis: <span class="comment">// #define X(... -> C99 varargs</span></div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> <span class="keywordflow">if</span> (!LangOpts.C99)</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, LangOpts.CPlusPlus11 ? </div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> diag::warn_cxx98_compat_variadic_macro :</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> diag::ext_variadic_macro);</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> </div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> <span class="comment">// OpenCL v1.2 s6.9.e: variadic macros are not supported.</span></div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> <span class="keywordflow">if</span> (LangOpts.OpenCL) {</div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_opencl_variadic_macros);</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> <span class="keywordflow">return</span> <span class="keyword">true</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="comment">// Lex the token after the identifier.</span></div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_missing_rparen_in_macro_def);</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> }</div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <span class="comment">// Add the __VA_ARGS__ identifier as an argument.</span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> Arguments.push_back(Ident__VA_ARGS__);</div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#ae4fb0938aa11f096a98513bd89337cac" title="Varargs querying methods. This can only be set for function-like macros.">setIsC99Varargs</a>();</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#ab4252f3e07830f901ce6162d4f3cbcd5" title="Set the specified list of identifiers as the argument list for this macro.">setArgumentList</a>(&Arguments[0], Arguments.size(), BP);</div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> <span class="keywordflow">case</span> tok::eod: <span class="comment">// #define X(</span></div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_missing_rparen_in_macro_def);</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> <span class="comment">// Handle keywords and identifiers here to accept things like</span></div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> <span class="comment">// #define Foo(for) for.</span></div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> <span class="keywordflow">if</span> (II == 0) {</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> <span class="comment">// #define X(1</span></div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_invalid_tok_in_arg_list);</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> }</div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> </div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="comment">// If this is already used as an argument, it is used multiple times (e.g.</span></div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> <span class="comment">// #define X(A,A.</span></div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> <span class="keywordflow">if</span> (std::find(Arguments.begin(), Arguments.end(), II) !=</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span> Arguments.end()) { <span class="comment">// C99 6.10.3p6</span></div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_duplicate_name_in_arg_list) << II;</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> }</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> </div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> <span class="comment">// Add the argument to the macro info.</span></div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> Arguments.push_back(II);</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> </div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span> <span class="comment">// Lex the token after the identifier.</span></div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> </div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> <span class="keywordflow">default</span>: <span class="comment">// #define X(A B</span></div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_expected_comma_in_arg_list);</div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> <span class="keywordflow">case</span> tok::r_paren: <span class="comment">// #define X(A)</span></div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#ab4252f3e07830f901ce6162d4f3cbcd5" title="Set the specified list of identifiers as the argument list for this macro.">setArgumentList</a>(&Arguments[0], Arguments.size(), BP);</div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> <span class="keywordflow">case</span> tok::comma: <span class="comment">// #define X(A,</span></div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> <span class="keywordflow">case</span> tok::ellipsis: <span class="comment">// #define X(A... -> GCC extension</span></div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> <span class="comment">// Diagnose extension.</span></div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_named_variadic_macro);</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">// Lex the token after the identifier.</span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_missing_rparen_in_macro_def);</div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span> <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#ab3e05d2cc85832df73945f016a4508d7">setIsGNUVarargs</a>();</div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#ab4252f3e07830f901ce6162d4f3cbcd5" title="Set the specified list of identifiers as the argument list for this macro.">setArgumentList</a>(&Arguments[0], Arguments.size(), BP);</div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</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> }</div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> <span class="comment"></span></div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> <span class="comment">/// HandleDefineDirective - Implements \#define. This consumes the entire macro</span></div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> <span class="comment">/// line then lets the caller lex the next real token.</span></div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleDefineDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &DefineTok,</div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span> <span class="keywordtype">bool</span> ImmediatelyAfterHeaderGuard) {</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> ++NumDefined;</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> <a class="code" href="classclang_1_1Token.html">Token</a> MacroNameTok;</div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> ReadMacroName(MacroNameTok, 1);</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> </div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> <span class="comment">// Error reading macro name? If so, diagnostic already issued.</span></div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> <span class="keywordflow">if</span> (MacroNameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod))</div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> </div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> <a class="code" href="classclang_1_1Token.html">Token</a> LastTok = MacroNameTok;</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span> </div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span> <span class="comment">// If we are supposed to keep comments in #defines, reenable comment saving</span></div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> <span class="comment">// mode.</span></div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> <span class="keywordflow">if</span> (CurLexer) CurLexer->SetCommentRetentionState(KeepMacroComments);</div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span> </div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> <span class="comment">// Create the new macro.</span></div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = <a class="code" href="classclang_1_1Preprocessor.html#aa61d27c61e53b8c69549fedcd8baa5ef" title="Allocate a new MacroInfo object with the provided SourceLocation.">AllocateMacroInfo</a>(MacroNameTok.<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>());</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> </div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</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> <span class="comment">// If this is a function-like macro definition, parse the argument list,</span></div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span> <span class="comment">// marking each of the identifiers as being used as macro arguments. Also,</span></div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span> <span class="comment">// check other constraints on the first token of the macro body.</span></div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> <span class="keywordflow">if</span> (Tok.is(tok::eod)) {</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> <span class="keywordflow">if</span> (ImmediatelyAfterHeaderGuard) {</div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span> <span class="comment">// Save this macro information since it may part of a header guard.</span></div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#a7d95aa602a7dc413510161ef8d84814b">SetDefinedMacro</a>(MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(),</div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> MacroNameTok.<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>());</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> }</div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> <span class="comment">// If there is no body to this macro, we have no special handling here.</span></div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.hasLeadingSpace()) {</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span> <span class="comment">// This is a normal token with leading space. Clear the leading space</span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> <span class="comment">// marker on the first token to get proper expansion.</span></div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span> Tok.clearFlag(<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5ab8a948482f9e8ad5043072f7752768c9">Token::LeadingSpace</a>);</div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.is(tok::l_paren)) {</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> <span class="comment">// This is a function-like macro definition. Read the argument list.</span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#a8ae859f9886c42ee3aa9c87fe254447a">setIsFunctionLike</a>();</div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> <span class="keywordflow">if</span> (ReadMacroDefinitionArgList(MI, LastTok)) {</div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span> <span class="comment">// Forget about MI.</span></div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span> ReleaseMacroInfo(MI);</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> <span class="comment">// Throw away the rest of the line.</span></div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a>)</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</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> </div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> <span class="comment">// If this is a definition of a variadic C99 function-like macro, not using</span></div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> <span class="comment">// the GNU named varargs extension, enabled __VA_ARGS__.</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> </div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> <span class="comment">// "Poison" __VA_ARGS__, which can only appear in the expansion of a macro.</span></div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span> <span class="comment">// This gets unpoisoned where it is allowed.</span></div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> assert(Ident__VA_ARGS__-><a class="code" href="classclang_1_1IdentifierInfo.html#a01f4ca68b921105e106245db58477858" title="Return true if this token has been poisoned.">isPoisoned</a>() && <span class="stringliteral">"__VA_ARGS__ should be poisoned!"</span>);</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> <span class="keywordflow">if</span> (MI-><a class="code" href="classclang_1_1MacroInfo.html#a68e9485c3119dcc54ec2dcc99ca194da">isC99Varargs</a>())</div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> Ident__VA_ARGS__-><a class="code" href="classclang_1_1IdentifierInfo.html#a653348c67e7bac7d9e7308ebf53606ff">setIsPoisoned</a>(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> </div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <span class="comment">// Read the first token after the arg list for down below.</span></div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (LangOpts.C99 || LangOpts.CPlusPlus11) {</div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> <span class="comment">// C99 requires whitespace between the macro definition and the body. Emit</span></div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <span class="comment">// a diagnostic for something like "#define X+".</span></div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_c99_whitespace_required_after_macro_name);</div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> <span class="comment">// C90 6.8 TC1 says: "In the definition of an object-like macro, if the</span></div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> <span class="comment">// first character of a replacement list is not a character required by</span></div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <span class="comment">// subclause 5.2.1, then there shall be white-space separation between the</span></div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> <span class="comment">// identifier and the replacement list.". 5.2.1 lists this set:</span></div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> <span class="comment">// "A-Za-z0-9!"#%&'()*+,_./:;<=>?[\]^_{|}~" as well as whitespace, which</span></div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> <span class="comment">// is irrelevant here.</span></div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> <span class="keywordtype">bool</span> <a class="code" href="SourceManager_8cpp.html#a6e59ede49e08cae14bbbfa239c1f9b92">isInvalid</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> <span class="keywordflow">if</span> (Tok.is(tok::at)) <span class="comment">// @ is not in the list above.</span></div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> isInvalid = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.is(tok::unknown)) {</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> <span class="comment">// If we have an unknown token, it is something strange like "`". Since</span></div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> <span class="comment">// all of valid characters would have lexed into a single character</span></div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> <span class="comment">// token of some sort, we know this is not a valid case.</span></div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> isInvalid = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> }</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="keywordflow">if</span> (isInvalid)</div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_missing_whitespace_after_macro_name);</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_missing_whitespace_after_macro_name);</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</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> <span class="keywordflow">if</span> (!Tok.is(tok::eod))</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> LastTok = Tok;</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> </div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> <span class="comment">// Read the rest of the macro body.</span></div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <span class="keywordflow">if</span> (MI-><a class="code" href="classclang_1_1MacroInfo.html#acf9efae22d2becd90755c62bad279613">isObjectLike</a>()) {</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> <span class="comment">// Object-like macros are very simple, just read their body.</span></div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> <span class="keywordflow">while</span> (Tok.isNot(tok::eod)) {</div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> LastTok = Tok;</div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#acb55626f1e75c300c5060d7eaee460c9" title="Add the specified token to the replacement text for the macro.">AddTokenToBody</a>(Tok);</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> <span class="comment">// Get the next token of the macro.</span></div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> }</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span> </div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> <span class="comment">// Otherwise, read the body of a function-like macro. While we are at it,</span></div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> <span class="comment">// check C99 6.10.3.2p1: ensure that # operators are followed by macro</span></div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span> <span class="comment">// parameters in function-like macro expansions.</span></div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> <span class="keywordflow">while</span> (Tok.isNot(tok::eod)) {</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> LastTok = Tok;</div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> </div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> <span class="keywordflow">if</span> (Tok.isNot(tok::hash) && Tok.isNot(tok::hashhash)) {</div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#acb55626f1e75c300c5060d7eaee460c9" title="Add the specified token to the replacement text for the macro.">AddTokenToBody</a>(Tok);</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="comment">// Get the next token of the macro.</span></div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> }</div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> </div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <span class="comment">// If we're in -traditional mode, then we should ignore stringification</span></div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> <span class="comment">// and token pasting. Mark the tokens as unknown so as not to confuse</span></div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <span class="comment">// things.</span></div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().TraditionalCPP) {</div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> Tok.setKind(tok::unknown);</div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#acb55626f1e75c300c5060d7eaee460c9" title="Add the specified token to the replacement text for the macro.">AddTokenToBody</a>(Tok);</div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> </div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> <span class="comment">// Get the next token of the macro.</span></div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> }</div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> </div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span> <span class="keywordflow">if</span> (Tok.is(tok::hashhash)) {</div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span> </div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> <span class="comment">// If we see token pasting, check if it looks like the gcc comma</span></div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> <span class="comment">// pasting extension. We'll use this information to suppress</span></div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span> <span class="comment">// diagnostics later on.</span></div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span> </div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> <span class="comment">// Get the next token of the macro.</span></div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span> </div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span> <span class="keywordflow">if</span> (Tok.is(tok::eod)) {</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#acb55626f1e75c300c5060d7eaee460c9" title="Add the specified token to the replacement text for the macro.">AddTokenToBody</a>(LastTok);</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> }</div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> </div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> <span class="keywordtype">unsigned</span> NumTokens = MI-><a class="code" href="classclang_1_1MacroInfo.html#ab512ca1f6fb1c116d6e0e79c71999770" title="Return the number of tokens that this macro expands to.">getNumTokens</a>();</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> <span class="keywordflow">if</span> (NumTokens && Tok.getIdentifierInfo() == Ident__VA_ARGS__ &&</div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#a3a7a58bd12a2c8a9dc2f7574a07f5133">getReplacementToken</a>(NumTokens-1).<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma))</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#a26eb12518561bac5d555b559aac8ed7b">setHasCommaPasting</a>();</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> <span class="comment">// Things look ok, add the '##' token to the macro.</span></div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#acb55626f1e75c300c5060d7eaee460c9" title="Add the specified token to the replacement text for the macro.">AddTokenToBody</a>(LastTok);</div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> }</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> </div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> <span class="comment">// Get the next token of the macro.</span></div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> </div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> <span class="comment">// Check for a valid macro arg identifier.</span></div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> <span class="keywordflow">if</span> (Tok.getIdentifierInfo() == 0 ||</div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#a36b7257750030c12410367b489fbb0d4" title="Return the argument number of the specified identifier, or -1 if the identifier is not a formal argum...">getArgumentNum</a>(Tok.getIdentifierInfo()) == -1) {</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> </div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> <span class="comment">// If this is assembler-with-cpp mode, we accept random gibberish after</span></div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> <span class="comment">// the '#' because '#' is often a comment character. However, change</span></div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> <span class="comment">// the kind of the token to tok::unknown so that the preprocessor isn't</span></div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> <span class="comment">// confused.</span></div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().AsmPreprocessor && Tok.isNot(tok::eod)) {</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> LastTok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::unknown);</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#acb55626f1e75c300c5060d7eaee460c9" title="Add the specified token to the replacement text for the macro.">AddTokenToBody</a>(LastTok);</div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_stringize_not_parameter);</div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> ReleaseMacroInfo(MI);</div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> </div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> <span class="comment">// Disable __VA_ARGS__ again.</span></div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> Ident__VA_ARGS__-><a class="code" href="classclang_1_1IdentifierInfo.html#a653348c67e7bac7d9e7308ebf53606ff">setIsPoisoned</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> }</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</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> <span class="comment">// Things look ok, add the '#' and param name tokens to the macro.</span></div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#acb55626f1e75c300c5060d7eaee460c9" title="Add the specified token to the replacement text for the macro.">AddTokenToBody</a>(LastTok);</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#acb55626f1e75c300c5060d7eaee460c9" title="Add the specified token to the replacement text for the macro.">AddTokenToBody</a>(Tok);</div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> LastTok = Tok;</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="comment">// Get the next token of the macro.</span></div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> }</div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> }</div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> </div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> </div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> <span class="comment">// Disable __VA_ARGS__ again.</span></div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> Ident__VA_ARGS__-><a class="code" href="classclang_1_1IdentifierInfo.html#a653348c67e7bac7d9e7308ebf53606ff">setIsPoisoned</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> </div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> <span class="comment">// Check that there is no paste (##) operator at the beginning or end of the</span></div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> <span class="comment">// replacement list.</span></div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> <span class="keywordtype">unsigned</span> NumTokens = MI-><a class="code" href="classclang_1_1MacroInfo.html#ab512ca1f6fb1c116d6e0e79c71999770" title="Return the number of tokens that this macro expands to.">getNumTokens</a>();</div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> <span class="keywordflow">if</span> (NumTokens != 0) {</div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="keywordflow">if</span> (MI-><a class="code" href="classclang_1_1MacroInfo.html#a3a7a58bd12a2c8a9dc2f7574a07f5133">getReplacementToken</a>(0).<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::hashhash)) {</div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a3a7a58bd12a2c8a9dc2f7574a07f5133">getReplacementToken</a>(0), diag::err_paste_at_start);</div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span> ReleaseMacroInfo(MI);</div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span> <span class="keywordflow">return</span>;</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="keywordflow">if</span> (MI-><a class="code" href="classclang_1_1MacroInfo.html#a3a7a58bd12a2c8a9dc2f7574a07f5133">getReplacementToken</a>(NumTokens-1).<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::hashhash)) {</div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a3a7a58bd12a2c8a9dc2f7574a07f5133">getReplacementToken</a>(NumTokens-1), diag::err_paste_at_end);</div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> ReleaseMacroInfo(MI);</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> }</div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span> }</div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span> </div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#a41c370ef8fcd8d25d51148d3687438a6" title="Set the location of the last token in the macro.">setDefinitionEndLoc</a>(LastTok.<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>());</div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span> </div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span> <span class="comment">// Finally, if this identifier already had a macro defined for it, verify that</span></div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span> <span class="comment">// the macro bodies are identical, and issue diagnostics if they are not.</span></div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *OtherMI=<a class="code" href="classclang_1_1Preprocessor.html#aae0ad9f63f31eda09f5c5c2eac0cb307">getMacroInfo</a>(MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>())) {</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> <span class="comment">// It is very common for system headers to have tons of macro redefinitions</span></div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> <span class="comment">// and for warnings to be disabled in system headers. If this is the case,</span></div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> <span class="comment">// then don't bother calling MacroInfo::isIdenticalTo.</span></div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span> <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Preprocessor.html#a663f9d8c8151906a9bf39954f3d15c60">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#acb709a931ea0ff1ab26fd513cb70d32a">getSuppressSystemWarnings</a>() ||</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> !SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a99c639318222119c75ea9c12f1aa5cf2" title="Returns if a SourceLocation is in a system header.">isInSystemHeader</a>(DefineTok.<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>())) {</div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> <span class="keywordflow">if</span> (!OtherMI->isUsed() && OtherMI->isWarnIfUnused())</div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OtherMI->getDefinitionLoc(), diag::pp_macro_not_used);</div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> </div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> <span class="comment">// Warn if defining "__LINE__" and other builtins, per C99 6.10.8/4 and </span></div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> <span class="comment">// C++ [cpp.predefined]p4, but allow it as an extension.</span></div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span> <span class="keywordflow">if</span> (OtherMI->isBuiltinMacro())</div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroNameTok, diag::ext_pp_redef_builtin_macro);</div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span> <span class="comment">// Macros must be identical. This means all tokens and whitespace</span></div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span> <span class="comment">// separation must be the same. C99 6.10.3p2.</span></div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!OtherMI->isAllowRedefinitionsWithoutWarning() &&</div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span> !MI-><a class="code" href="classclang_1_1MacroInfo.html#a979840859913a30f4919756c6ddae8aa" title="Return true if the specified macro definition is equal to this macro in spelling, arguments...">isIdenticalTo</a>(*OtherMI, *<span class="keyword">this</span>, <span class="comment">/*Syntactic=*/</span>LangOpts.MicrosoftExt)) {</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>(), diag::ext_pp_macro_redef)</div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span> << MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OtherMI->getDefinitionLoc(), diag::note_previous_definition);</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span> }</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> }</div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span> <span class="keywordflow">if</span> (OtherMI->isWarnIfUnused())</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span> WarnUnusedMacroLocs.erase(OtherMI->getDefinitionLoc());</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span> }</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> </div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span> <a class="code" href="classclang_1_1DefMacroDirective.html" title="A directive for a defined macro or a macro imported from a module.">DefMacroDirective</a> *MD =</div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span> <a class="code" href="classclang_1_1Preprocessor.html#afc410b9870f9ee069b69be52e845e82f">appendDefMacroDirective</a>(MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(), MI);</div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span> </div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span> assert(!MI-><a class="code" href="classclang_1_1MacroInfo.html#adaa5e481e32f17b953a956d6091ea272" title="Return false if this macro is defined in the main file and has not yet been used.">isUsed</a>());</div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span> <span class="comment">// If we need warning for not using the macro, add its location in the</span></div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span> <span class="comment">// warn-because-unused-macro set. If it gets used it will be removed from set.</span></div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a30bc78248de9022150189daa58ca1397" title="Returns whether the PresumedLoc for a given SourceLocation is in the main file.">isInMainFile</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>()) &&</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> Diags-><a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::pp_macro_not_used,</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>()) != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>) {</div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span> MI-><a class="code" href="classclang_1_1MacroInfo.html#aaf83c3bca06241974d6cbd5cfb56ad4b" title="Set the value of the IsWarnIfUnused flag.">setIsWarnIfUnused</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span> WarnUnusedMacroLocs.insert(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>());</div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span> }</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span> </div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span> <span class="comment">// If the callbacks want to know, tell them about the macro definition.</span></div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a8448fc9f96f22ad1b93ff393cffc5a76" title="Hook called whenever a macro definition is seen.">MacroDefined</a>(MacroNameTok, MD);</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span> }</div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span> <span class="comment"></span></div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span> <span class="comment">/// HandleUndefDirective - Implements \#undef.</span></div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleUndefDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &UndefTok) {</div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span> ++NumUndefined;</div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span> </div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> <a class="code" href="classclang_1_1Token.html">Token</a> MacroNameTok;</div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span> ReadMacroName(MacroNameTok, 2);</div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span> </div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span> <span class="comment">// Error reading macro name? If so, diagnostic already issued.</span></div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span> <span class="keywordflow">if</span> (MacroNameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod))</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span> </div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span> <span class="comment">// Check to see if this is the last token on the #undef line.</span></div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"undef"</span>);</div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> </div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> <span class="comment">// Okay, we finally have a valid identifier to undef.</span></div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD = <a class="code" href="classclang_1_1Preprocessor.html#a23a93e29cd30864017b909e27875390d" title="Given an identifier, return its latest MacroDirective if it is.">getMacroDirective</a>(MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>());</div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = MD ? MD-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>() : 0;</div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> </div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span> <span class="comment">// If the callbacks want to know, tell them about the macro #undef.</span></div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span> <span class="comment">// Note: no matter if the macro was defined or not.</span></div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#acb80fc6171a839db8e290945bf2c9d7a" title="Hook called whenever a macro #undef is seen.">MacroUndefined</a>(MacroNameTok, MD);</div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span> </div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span> <span class="comment">// If the macro is not defined, this is a noop undef, just return.</span></div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> <span class="keywordflow">if</span> (MI == 0) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span> </div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span> <span class="keywordflow">if</span> (!MI->isUsed() && MI->isWarnIfUnused())</div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI->getDefinitionLoc(), diag::pp_macro_not_used);</div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span> </div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> <span class="keywordflow">if</span> (MI->isWarnIfUnused())</div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> WarnUnusedMacroLocs.erase(MI->getDefinitionLoc());</div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span> </div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span> <a class="code" href="classclang_1_1Preprocessor.html#aff92a28cdfbaae74c5669b8eb5af7004" title="Add a directive to the macro directive history for this identifier.">appendMacroDirective</a>(MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(),</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> AllocateUndefMacroDirective(MacroNameTok.<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>()));</div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span> }</div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span> </div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span> </div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span> <span class="comment">// Preprocessor Conditional Directive Handling.</span></div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span> <span class="comment"></span></div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> <span class="comment">/// HandleIfdefDirective - Implements the \#ifdef/\#ifndef directive. isIfndef</span></div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span> <span class="comment">/// is true when this is a \#ifndef directive. ReadAnyTokensBeforeDirective is</span></div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span> <span class="comment">/// true if any tokens have been returned or pp-directives activated before this</span></div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span> <span class="comment">/// \#ifndef has been lexed.</span></div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleIfdefDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &Result, <span class="keywordtype">bool</span> isIfndef,</div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span> <span class="keywordtype">bool</span> ReadAnyTokensBeforeDirective) {</div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span> ++NumIf;</div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span> <a class="code" href="classclang_1_1Token.html">Token</a> DirectiveTok = Result;</div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span> </div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span> <a class="code" href="classclang_1_1Token.html">Token</a> MacroNameTok;</div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span> ReadMacroName(MacroNameTok);</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> </div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span> <span class="comment">// Error reading macro name? If so, diagnostic already issued.</span></div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span> <span class="keywordflow">if</span> (MacroNameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) {</div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> <span class="comment">// Skip code until we get to #endif. This helps with recovery by not</span></div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> <span class="comment">// emitting an error when the #endif is reached.</span></div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span> SkipExcludedConditionalBlock(DirectiveTok.<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>(),</div>
+<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span> <span class="comment">/*Foundnonskip*/</span><span class="keyword">false</span>, <span class="comment">/*FoundElse*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> }</div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span> </div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span> <span class="comment">// Check to see if this is the last token on the #if[n]def line.</span></div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(isIfndef ? <span class="stringliteral">"ifndef"</span> : <span class="stringliteral">"ifdef"</span>);</div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span> </div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *MII = MacroNameTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD = <a class="code" href="classclang_1_1Preprocessor.html#a23a93e29cd30864017b909e27875390d" title="Given an identifier, return its latest MacroDirective if it is.">getMacroDirective</a>(MII);</div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = MD ? MD-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>() : 0;</div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span> </div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a36a7490cb33de4544dad12b7af760cfd">getConditionalStackDepth</a>() == 0) {</div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span> <span class="comment">// If the start of a top-level #ifdef and if the macro is not defined,</span></div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span> <span class="comment">// inform MIOpt that this might be the start of a proper include guard.</span></div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span> <span class="comment">// Otherwise it is some other form of unknown conditional which we can't</span></div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span> <span class="comment">// handle.</span></div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span> <span class="keywordflow">if</span> (!ReadAnyTokensBeforeDirective && MI == 0) {</div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span> assert(isIfndef && <span class="stringliteral">"#ifdef shouldn't reach here"</span>);</div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<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>(MII, MacroNameTok.<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>());</div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<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="l02210"></a><span class="lineno"> 2210</span> }</div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> </div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span> <span class="comment">// If there is a macro, process it.</span></div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span> <span class="keywordflow">if</span> (MI) <span class="comment">// Mark it used.</span></div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span> <a class="code" href="classclang_1_1Preprocessor.html#a374054b25f5e05212201b1357b5cd62b" title="A macro is used, update information about macros that need unused warnings.">markMacroAsUsed</a>(MI);</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> </div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span> <span class="keywordflow">if</span> (Callbacks) {</div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span> <span class="keywordflow">if</span> (isIfndef)</div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a767af69f1cdcc4cd880fa2ebf77ad3ad" title="Hook called whenever an #ifndef is seen.">Ifndef</a>(DirectiveTok.<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>(), MacroNameTok, MD);</div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a0ce79575dda307784fd51a6dd4eec33d" title="Hook called whenever an #ifdef is seen.">Ifdef</a>(DirectiveTok.<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>(), MacroNameTok, MD);</div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span> }</div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span> </div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> <span class="comment">// Should we include the stuff contained by this directive?</span></div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span> <span class="keywordflow">if</span> (!MI == isIfndef) {</div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> <span class="comment">// Yes, remember that we are inside a conditional, then lex the next token.</span></div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3968b8c3fa5d9d2541a15d8af2e9414d">pushConditionalLevel</a>(DirectiveTok.<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>(),</div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span> <span class="comment">/*wasskip*/</span><span class="keyword">false</span>, <span class="comment">/*foundnonskip*/</span><span class="keyword">true</span>,</div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span> <span class="comment">/*foundelse*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span> <span class="comment">// No, skip the contents of this block.</span></div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span> SkipExcludedConditionalBlock(DirectiveTok.<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>(),</div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span> <span class="comment">/*Foundnonskip*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span> <span class="comment">/*FoundElse*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span> }</div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span> }</div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span> <span class="comment"></span></div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span> <span class="comment">/// HandleIfDirective - Implements the \#if directive.</span></div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleIfDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &IfToken,</div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> <span class="keywordtype">bool</span> ReadAnyTokensBeforeDirective) {</div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> ++NumIf;</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span> </div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> <span class="comment">// Parse and evaluate the conditional expression.</span></div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *IfNDefMacro = 0;</div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> <span class="keyword">const</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> ConditionalBegin = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>();</div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> ConditionalTrue = EvaluateDirectiveExpression(IfNDefMacro);</div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span> <span class="keyword">const</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> ConditionalEnd = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>();</div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span> </div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span> <span class="comment">// If this condition is equivalent to #ifndef X, and if this is the first</span></div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span> <span class="comment">// directive seen, handle it for the multiple-include optimization.</span></div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a36a7490cb33de4544dad12b7af760cfd">getConditionalStackDepth</a>() == 0) {</div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> <span class="keywordflow">if</span> (!ReadAnyTokensBeforeDirective && IfNDefMacro && ConditionalTrue)</div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span> <span class="comment">// FIXME: Pass in the location of the macro name, not the 'if' token.</span></div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<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>(IfNDefMacro, IfToken.<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>());</div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<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="l02257"></a><span class="lineno"> 2257</span> }</div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> </div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a645edcb0d6becbc6f256f02fd1287778" title="Hook called whenever an #if is seen.">If</a>(IfToken.<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>(),</div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ConditionalBegin, ConditionalEnd),</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span> ConditionalTrue);</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> </div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> <span class="comment">// Should we include the stuff contained by this directive?</span></div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span> <span class="keywordflow">if</span> (ConditionalTrue) {</div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> <span class="comment">// Yes, remember that we are inside a conditional, then lex the next token.</span></div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3968b8c3fa5d9d2541a15d8af2e9414d">pushConditionalLevel</a>(IfToken.<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>(), <span class="comment">/*wasskip*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span> <span class="comment">/*foundnonskip*/</span><span class="keyword">true</span>, <span class="comment">/*foundelse*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> <span class="comment">// No, skip the contents of this block.</span></div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> SkipExcludedConditionalBlock(IfToken.<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>(), <span class="comment">/*Foundnonskip*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span> <span class="comment">/*FoundElse*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span> }</div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> }</div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> <span class="comment"></span></div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <span class="comment">/// HandleEndifDirective - Implements the \#endif directive.</span></div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleEndifDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &EndifToken) {</div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> ++NumEndif;</div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> </div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span> <span class="comment">// Check that this is the whole directive.</span></div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"endif"</span>);</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span> </div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> CondInfo;</div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a8b08635b456503da08924de9ebb30ed2">popConditionalLevel</a>(CondInfo)) {</div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span> <span class="comment">// No conditionals on the stack: this is an #endif without an #if.</span></div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(EndifToken, diag::err_pp_endif_without_if);</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> }</div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> </div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span> <span class="comment">// If this the end of a top-level #endif, inform MIOpt.</span></div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a36a7490cb33de4544dad12b7af760cfd">getConditionalStackDepth</a>() == 0)</div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<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="l02294"></a><span class="lineno"> 2294</span> </div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span> assert(!CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aeb024e3de8d2e6f7e0884348af7413ce" title="True if this was contained in a skipping directive, e.g., in a "\#if 0" block.">WasSkipping</a> && !CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> &&</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> <span class="stringliteral">"This code should only be reachable in the non-skipping case!"</span>);</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span> </div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#afc62ca1401125f516d58b1629a2093ce" title="Hook called whenever an #endif is seen.">Endif</a>(EndifToken.<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>(), CondInfo.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a>);</div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> }</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> <span class="comment"></span></div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> <span class="comment">/// HandleElseDirective - Implements the \#else directive.</span></div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleElseDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &Result) {</div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> ++NumElse;</div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> </div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="comment">// #else directive in a non-skipping conditional... start skipping.</span></div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span> <a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"else"</span>);</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span> </div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> CI;</div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a8b08635b456503da08924de9ebb30ed2">popConditionalLevel</a>(CI)) {</div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Result, diag::pp_err_else_without_if);</div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span> }</div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span> </div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span> <span class="comment">// If this is a top-level #else, inform the MIOpt.</span></div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a36a7490cb33de4544dad12b7af760cfd">getConditionalStackDepth</a>() == 0)</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<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="l02319"></a><span class="lineno"> 2319</span> </div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span> <span class="comment">// If this is a #else with a #else before it, report the error.</span></div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> <span class="keywordflow">if</span> (CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a>) <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Result, diag::pp_err_else_after_else);</div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span> </div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#ad57f91b6d9c3cbcca326a2bfb49e0314" title="Hook called whenever an #else is seen.">Else</a>(Result.<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>(), CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a>);</div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span> </div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span> <span class="comment">// Finally, skip the rest of the contents of this block.</span></div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span> SkipExcludedConditionalBlock(CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a>, <span class="comment">/*Foundnonskip*/</span><span class="keyword">true</span>,</div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span> <span class="comment">/*FoundElse*/</span><span class="keyword">true</span>, Result.<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>());</div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span> }</div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span> <span class="comment"></span></div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> <span class="comment">/// HandleElifDirective - Implements the \#elif directive.</span></div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> <span class="comment">///</span></div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleElifDirective(<a class="code" href="classclang_1_1Token.html">Token</a> &ElifToken) {</div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span> ++NumElse;</div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span> </div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> <span class="comment">// #elif directive in a non-skipping conditional... start skipping.</span></div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span> <span class="comment">// We don't care what the condition is, because we will always skip it (since</span></div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> <span class="comment">// the block immediately before it was included).</span></div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span> <span class="keyword">const</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> ConditionalBegin = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>();</div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span> <span class="keyword">const</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> ConditionalEnd = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>();</div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span> </div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> CI;</div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a8b08635b456503da08924de9ebb30ed2">popConditionalLevel</a>(CI)) {</div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(ElifToken, diag::pp_err_elif_without_if);</div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span> }</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span> </div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span> <span class="comment">// If this is a top-level #elif, inform the MIOpt.</span></div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span> <span class="keywordflow">if</span> (CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a36a7490cb33de4544dad12b7af760cfd">getConditionalStackDepth</a>() == 0)</div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<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="l02352"></a><span class="lineno"> 2352</span> </div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span> <span class="comment">// If this is a #elif with a #else before it, report the error.</span></div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> <span class="keywordflow">if</span> (CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a>) <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(ElifToken, diag::pp_err_elif_after_else);</div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span> </div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a180c9e106a28d60a6112e16b1bb8302a" title="Hook called whenever an #elif is seen.">Elif</a>(ElifToken.<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>(),</div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ConditionalBegin, ConditionalEnd),</div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span> <span class="keyword">true</span>, CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a>);</div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span> </div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span> <span class="comment">// Finally, skip the rest of the contents of this block.</span></div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span> SkipExcludedConditionalBlock(CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a>, <span class="comment">/*Foundnonskip*/</span><span class="keyword">true</span>,</div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span> <span class="comment">/*FoundElse*/</span>CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a>,</div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span> ElifToken.<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>());</div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:52 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/PPDirectives_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPDirectives_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPDirectives_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPDirectives_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,349 @@
+<!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: PPDirectives.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">PPDirectives.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPDirectives_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/PPDirectives.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/PPDirectives.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> PPDirectives.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>/Preprocessor.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/Builtins.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/LLVM.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def \</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/Diagnostic.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/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/ADT/StringRef.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</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="l00020"></a><span class="lineno"> 20</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="l00021"></a><span class="lineno"> 21</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="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</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="l00032"></a><span class="lineno"> 32</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="l00033"></a><span class="lineno"> 33</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="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/tools/clang/lib/<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="l00039"></a><span class="lineno"> 39</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="l00040"></a><span class="lineno"> 40</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="l00041"></a><span class="lineno"> 41</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="l00042"></a><span class="lineno"> 42</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="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</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="l00048"></a><span class="lineno"> 48</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="l00049"></a><span class="lineno"> 49</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="l00050"></a><span class="lineno"> 50</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="l00051"></a><span class="lineno"> 51</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="l00052"></a><span class="lineno"> 52</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="l00053"></a><span class="lineno"> 53</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="l00054"></a><span class="lineno"> 54</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="l00055"></a><span class="lineno"> 55</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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/Module.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/SourceManager.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/FileManager.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</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="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/include/llvm-c/Core.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>/PPCallbacks.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>/DirectoryLookup.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</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>/CodeCompletionHandler.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</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="l00084"></a><span class="lineno"> 84</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</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>/HeaderSearchOptions.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</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="l00087"></a><span class="lineno"> 87</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="l00088"></a><span class="lineno"> 88</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="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/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> /home/tstellar/llvm/include/llvm/ADT/None.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> /home/tstellar/llvm/include/llvm/Support/Compiler.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/Config/llvm-config.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/ADT/StringRef.h:</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.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/ArrayRef.h:</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.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/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.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/Optional.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/Triple.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.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/<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="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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> /home/tstellar/llvm/tools/clang/lib/<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="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> /home/tstellar/llvm/tools/clang/lib/<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="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</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="l00195"></a><span class="lineno"> 195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.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/PointerIntPair.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.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/include/llvm/ADT/OwningPtr.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/include/llvm/Support/FileSystem.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/Support/TimeValue.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/Support/system_error.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/MemoryBuffer.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> /home/tstellar/llvm/include/llvm-c/Core.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> /home/tstellar/llvm/tools/clang/lib/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/CodeCompletionHandler.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> /home/tstellar/llvm/tools/clang/lib/<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="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearchOptions.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> /home/tstellar/llvm/tools/clang/lib/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc:</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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:52 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/PPExpressions_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPExpressions_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPExpressions_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPExpressions_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,884 @@
+<!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: PPExpressions.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">PPExpressions.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPExpressions_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">//===--- PPExpressions.cpp - Preprocessor Expression Evaluation -----------===//</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 Preprocessor::EvaluateDirectiveExpression method,</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// which parses and evaluates integer constant expressions for #if directives.</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="comment">//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// FIXME: implement testing for #assert's.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</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="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="CodeCompletionHandler_8h.html">clang/Lex/CodeCompletionHandler.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="LiteralSupport_8h.html">clang/Lex/LiteralSupport.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="MacroInfo_8h.html" title="Defines the clang::MacroInfo and clang::MacroDirective classes.">clang/Lex/MacroInfo.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "llvm/ADT/APSInt.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "llvm/Support/SaveAndRestore.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/// PPValue - Represents the value of a subexpression of a preprocessor</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">/// conditional and the source range covered by it.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"></span><span class="keyword">class </span>PPValue {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> llvm::APSInt Val;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Default ctor - Construct an 'invalid' PPValue.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> PPValue(<span class="keywordtype">unsigned</span> BitWidth) : Val(BitWidth) {}</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">unsigned</span> getBitWidth()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Val.getBitWidth(); }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">bool</span> isUnsigned()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Val.isUnsigned(); }</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> &getRange()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Range; }</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keywordtype">void</span> setRange(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L) { Range.<a class="code" href="classclang_1_1SourceRange.html#a11fd265391224233491b6a0d351b8acd">setBegin</a>(L); Range.setEnd(L); }</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">void</span> setRange(<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> B, <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> E) {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> Range.setBegin(B); Range.setEnd(E);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">void</span> setBegin(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L) { Range.setBegin(L); }</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> setEnd(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L) { Range.setEnd(L); }</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> };</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPExpressions_8cpp.html#a85e2d947a59173ca006391dc777f1362">EvaluateDirectiveSubExpr</a>(PPValue &LHS, <span class="keywordtype">unsigned</span> MinPrec,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <a class="code" href="classclang_1_1Token.html">Token</a> &PeekTok, <span class="keywordtype">bool</span> ValueLive,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">/// DefinedTracker - This struct is used while parsing expressions to keep track</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">/// of whether !defined(X) has been seen.</span></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">/// With this simple scheme, we handle the basic forms:</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/// !defined(X) and !defined X</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">/// but we also trivially handle (silly) stuff like:</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">/// !!!defined(X) and +!defined(X) and !+!+!defined(X) and !(defined(X)).</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="structDefinedTracker.html"> 68</a></span> <span class="comment"></span><span class="keyword">struct </span><a class="code" href="structDefinedTracker.html">DefinedTracker</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> /// Each time a Value is evaluated, it returns information about whether the</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> /// parsed value is of the form defined(X), !defined(X) or is something else.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685"> 71</a></span> <span class="comment"></span> <span class="keyword">enum</span> <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685">TrackerState</a> {</div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685af8aaf21b7d504677205a1a7b69469ead"> 72</a></span> <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685af8aaf21b7d504677205a1a7b69469ead">DefinedMacro</a>, <span class="comment">// defined(X)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a955fe314f3d4920a5ba71bb17d17137f"> 73</a></span> <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a955fe314f3d4920a5ba71bb17d17137f">NotDefinedMacro</a>, <span class="comment">// !defined(X)</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a4fb842b2f0e8e94b7e039862059615b6"> 74</a></span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880a4e81c184ac3ad48a389cd4454c4a05bb">Unknown</a> <span class="comment">// Something else.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> } <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;<span class="comment"></span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> /// TheMacro - When the state is DefinedMacro or NotDefinedMacro, this</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> /// indicates the macro that was checked.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="structDefinedTracker.html#a83c975fd129a2ce4f730788809f1f590"> 78</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *<a class="code" href="structDefinedTracker.html#a83c975fd129a2ce4f730788809f1f590">TheMacro</a>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> };</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"></span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">/// EvaluateDefined - Process a 'defined(sym)' expression.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="PPExpressions_8cpp.html#af900ec521ccfdf55c5fca9792f97225b"> 82</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPExpressions_8cpp.html#af900ec521ccfdf55c5fca9792f97225b" title="EvaluateDefined - Process a 'defined(sym)' expression.">EvaluateDefined</a>(PPValue &Result, <a class="code" href="classclang_1_1Token.html">Token</a> &PeekTok, <a class="code" href="structDefinedTracker.html">DefinedTracker</a> &DT,</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keywordtype">bool</span> ValueLive, <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</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> beginLoc(PeekTok.<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>());</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> Result.setBegin(beginLoc);</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="comment">// Get the next token, don't expand it.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#aacd40b40055161ec072432cbcda70e50">LexUnexpandedNonComment</a>(PeekTok);</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">// Two options, it can either be a pp-identifier or a (.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</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> LParenLoc;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">if</span> (PeekTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Found a paren, remember we saw it and skip it.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> LParenLoc = PeekTok.<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>();</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#aacd40b40055161ec072432cbcda70e50">LexUnexpandedNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">if</span> (PeekTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion)) {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#afa9c17f1c88d2e7003310c4342bb7102" title="Retrieve the current code-completion handler.">getCodeCompletionHandler</a>())</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#afa9c17f1c88d2e7003310c4342bb7102" title="Retrieve the current code-completion handler.">getCodeCompletionHandler</a>()-><a class="code" href="classclang_1_1CodeCompletionHandler.html#aa7e7742cdcea9f572c46ac4667aad5d9" title="Callback invoked when performing code completion in a context where the name of a macro is expected...">CodeCompleteMacroName</a>(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a46fc08613cbf552886ad9ac01cf4b6c1" title="Note that we hit the code-completion point.">setCodeCompletionReached</a>();</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#aacd40b40055161ec072432cbcda70e50">LexUnexpandedNonComment</a>(PeekTok);</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 we don't have a pp-identifier now, this is an error.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">if</span> ((II = PeekTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()) == 0) {</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::err_pp_defined_requires_identifier);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// Otherwise, we got an identifier, is it defined to something?</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> Result.Val = II-><a class="code" href="classclang_1_1IdentifierInfo.html#a34cb7627ed0055795b041425667ee8a8" title="Return true if this identifier is #defined to some other value.">hasMacroDefinition</a>();</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> Result.Val.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// Result is signed intmax_t.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *Macro = 0;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// If there is a macro, mark it used.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">if</span> (Result.Val != 0 && ValueLive) {</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> Macro = PP.<a class="code" href="classclang_1_1Preprocessor.html#a23a93e29cd30864017b909e27875390d" title="Given an identifier, return its latest MacroDirective if it is.">getMacroDirective</a>(II);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a374054b25f5e05212201b1357b5cd62b" title="A macro is used, update information about macros that need unused warnings.">markMacroAsUsed</a>(Macro-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>());</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// Save macro token for callback.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <a class="code" href="classclang_1_1Token.html">Token</a> macroToken(PeekTok);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// If we are in parens, ensure we have a trailing ).</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">if</span> (LParenLoc.<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="l00128"></a><span class="lineno"> 128</span> <span class="comment">// Consume identifier.</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> Result.setEnd(PeekTok.<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>());</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#aacd40b40055161ec072432cbcda70e50">LexUnexpandedNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">if</span> (PeekTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok.<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_pp_missing_rparen) << <span class="stringliteral">"defined"</span>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(LParenLoc, diag::note_matching) << <span class="stringliteral">"("</span>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span> <span class="keyword">true</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="comment">// Consume the ).</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> Result.setEnd(PeekTok.<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>());</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// Consume identifier.</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> Result.setEnd(PeekTok.<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>());</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// Invoke the 'defined' callback.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PPCallbacks.html" title="This interface provides a way to observe the actions of the preprocessor as it does its thing...">PPCallbacks</a> *Callbacks = PP.<a class="code" href="classclang_1_1Preprocessor.html#a19c49b68d13fbd14b80be6e947bddd4c">getPPCallbacks</a>()) {</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD = Macro;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">// Pass the MacroInfo for the macro name even if the value is dead.</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keywordflow">if</span> (!MD && Result.Val != 0)</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> MD = PP.<a class="code" href="classclang_1_1Preprocessor.html#a23a93e29cd30864017b909e27875390d" title="Given an identifier, return its latest MacroDirective if it is.">getMacroDirective</a>(II);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> Callbacks->Defined(macroToken, MD,</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(beginLoc, PeekTok.<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>()));</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> }</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// Success, remember that we saw defined(X).</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> = <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685af8aaf21b7d504677205a1a7b69469ead">DefinedTracker::DefinedMacro</a>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> DT.<a class="code" href="structDefinedTracker.html#a83c975fd129a2ce4f730788809f1f590">TheMacro</a> = II;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> <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">/// EvaluateValue - Evaluate the token PeekTok (and any others needed) and</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment">/// return the computed value in Result. Return true if there was an error</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">/// parsing. This function also returns information about the form of the</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">/// expression in DT. See above for information on what DT means.</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">/// If ValueLive is false, then this value is being evaluated in a context where</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">/// the result is not used. As such, avoid diagnostics that relate to</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">/// evaluation.</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f"> 170</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(PPValue &Result, <a class="code" href="classclang_1_1Token.html">Token</a> &PeekTok, <a class="code" href="structDefinedTracker.html">DefinedTracker</a> &DT,</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keywordtype">bool</span> ValueLive, <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> = <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a4fb842b2f0e8e94b7e039862059615b6">DefinedTracker::Unknown</a>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">if</span> (PeekTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion)) {</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#afa9c17f1c88d2e7003310c4342bb7102" title="Retrieve the current code-completion handler.">getCodeCompletionHandler</a>())</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#afa9c17f1c88d2e7003310c4342bb7102" title="Retrieve the current code-completion handler.">getCodeCompletionHandler</a>()-><a class="code" href="classclang_1_1CodeCompletionHandler.html#aa9b55672fcd705ea96ab8eccbf4a5717" title="Callback invoked when performing code completion in a preprocessor expression, such as the condition ...">CodeCompletePreprocessorExpression</a>();</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a46fc08613cbf552886ad9ac01cf4b6c1" title="Note that we hit the code-completion point.">setCodeCompletionReached</a>();</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</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"> 181</span> <span class="comment">// If this token's spelling is a pp-identifier, check to see if it is</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// 'defined' or if it is a macro. Note that we check here because many</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// keywords are pp-identifiers, so we can't check the kind.</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = PeekTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()) {</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// Handle "defined X" and "defined(X)".</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">if</span> (II->isStr(<span class="stringliteral">"defined"</span>))</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">return</span>(<a class="code" href="PPExpressions_8cpp.html#af900ec521ccfdf55c5fca9792f97225b" title="EvaluateDefined - Process a 'defined(sym)' expression.">EvaluateDefined</a>(Result, PeekTok, DT, ValueLive, PP));</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// If this identifier isn't 'defined' or one of the special</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// preprocessor keywords and it wasn't macro expanded, it turns</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// into a simple 0, unless it is the C++ keyword "true", in which case it</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// turns into "1".</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">if</span> (ValueLive &&</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> II->getTokenID() != tok::kw_true &&</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> II->getTokenID() != tok::kw_false)</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::warn_pp_undef_identifier) << II;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> Result.Val = II->getTokenID() == tok::kw_true;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> Result.Val.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// "0" is signed intmax_t 0.</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> Result.setRange(PeekTok.<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>());</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">return</span> <span class="keyword">false</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> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keywordflow">switch</span> (PeekTok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">default</span>: <span class="comment">// Non-value token.</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::err_pp_expr_bad_token_start_expr);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">case</span> tok::eod:</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">case</span> tok::r_paren:</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// If there is no expression, report and exit.</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::err_pp_expected_value_in_expr);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">case</span> tok::numeric_constant: {</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<64></a> IntegerBuffer;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordtype">bool</span> NumberInvalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> StringRef Spelling = PP.<a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(PeekTok, IntegerBuffer, </div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> &NumberInvalid);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">if</span> (NumberInvalid)</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// a diagnostic was already reported</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <a class="code" href="classclang_1_1NumericLiteralParser.html">NumericLiteralParser</a> Literal(Spelling, PeekTok.<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>(), PP);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">if</span> (Literal.hadError)</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// a diagnostic was already reported.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">if</span> (Literal.isFloatingLiteral() || Literal.isImaginary) {</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::err_pp_illegal_floating_literal);</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> }</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> assert(Literal.isIntegerLiteral() && <span class="stringliteral">"Unknown ppnumber"</span>);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// Complain about, and drop, any ud-suffix.</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">if</span> (Literal.hasUDSuffix())</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::err_pp_invalid_udl) << <span class="comment">/*integer*/</span>1;</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">// 'long long' is a C99 or C++11 feature.</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">if</span> (!PP.<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().C99 && Literal.isLongLong) {</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().CPlusPlus)</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok,</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().CPlusPlus11 ?</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> diag::warn_cxx98_compat_longlong : diag::ext_cxx11_longlong);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::ext_c99_longlong);</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> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment">// Parse the integer literal into Result.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">if</span> (Literal.GetIntegerValue(Result.Val)) {</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment">// Overflow parsing integer literal.</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">if</span> (ValueLive) PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::err_integer_too_large);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> Result.Val.setIsUnsigned(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment">// Set the signedness of the result to match whether there was a U suffix</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="comment">// or not.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> Result.Val.setIsUnsigned(Literal.isUnsigned);</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> <span class="comment">// Detect overflow based on whether the value is signed. If signed</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="comment">// and if the value is too large, emit a warning "integer constant is so</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment">// large that it is unsigned" e.g. on 12345678901234567890 where intmax_t</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment">// is 64-bits.</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">if</span> (!Literal.isUnsigned && Result.Val.isNegative()) {</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment">// Don't warn for a hex or octal literal: 0x8000..0 shouldn't warn.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">if</span> (ValueLive && Literal.getRadix() == 10)</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::warn_integer_too_large_for_signed);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> Result.Val.setIsUnsigned(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> }</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> }</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// Consume the token.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> Result.setRange(PeekTok.<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>());</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> }</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">case</span> tok::char_constant: <span class="comment">// 'x'</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">case</span> tok::wide_char_constant: <span class="comment">// L'x'</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">case</span> tok::utf16_char_constant: <span class="comment">// u'x'</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">case</span> tok::utf32_char_constant: { <span class="comment">// U'x'</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment">// Complain about, and drop, any ud-suffix.</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">if</span> (PeekTok.<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="l00278"></a><span class="lineno"> 278</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok, diag::err_pp_invalid_udl) << <span class="comment">/*character*/</span>0;</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> <a class="code" href="classllvm_1_1SmallString.html">SmallString<32></a> CharBuffer;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keywordtype">bool</span> CharInvalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> StringRef ThisTok = PP.<a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(PeekTok, CharBuffer, &CharInvalid);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">if</span> (CharInvalid)</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <a class="code" href="classclang_1_1CharLiteralParser.html">CharLiteralParser</a> Literal(ThisTok.begin(), ThisTok.end(),</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> PeekTok.<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>(), PP, PeekTok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>());</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">if</span> (Literal.hadError())</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// A diagnostic was already emitted.</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment">// Character literals are always int or wchar_t, expand to intmax_t.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &TI = PP.<a class="code" href="classclang_1_1Preprocessor.html#ac6865d870ca2177999249afe34042082">getTargetInfo</a>();</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keywordtype">unsigned</span> NumBits;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">if</span> (Literal.isMultiChar())</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> NumBits = TI.<a class="code" href="classclang_1_1TargetInfo.html#a72ec6d14f6a06a1524488c8f2e604546">getIntWidth</a>();</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Literal.isWide())</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> NumBits = TI.<a class="code" href="classclang_1_1TargetInfo.html#a78760edf75880ea00ddd20d5cc527efd">getWCharWidth</a>();</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Literal.isUTF16())</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> NumBits = TI.<a class="code" href="classclang_1_1TargetInfo.html#a799a7de59f8af11bce283e0fb0597b2a">getChar16Width</a>();</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Literal.isUTF32())</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> NumBits = TI.<a class="code" href="classclang_1_1TargetInfo.html#a7588aa52fe468ce39765b2d245fde37e">getChar32Width</a>();</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> NumBits = TI.<a class="code" href="classclang_1_1TargetInfo.html#a4e2ac19ae48b353248e7e15754283c8d">getCharWidth</a>();</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment">// Set the width.</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> llvm::APSInt Val(NumBits);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment">// Set the value.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> Val = Literal.getValue();</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment">// Set the signedness. UTF-16 and UTF-32 are always unsigned</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">if</span> (!Literal.isUTF16() && !Literal.isUTF32())</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> Val.setIsUnsigned(!PP.<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().CharIsSigned);</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">if</span> (Result.Val.getBitWidth() > Val.getBitWidth()) {</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> Result.Val = Val.extend(Result.Val.getBitWidth());</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> assert(Result.Val.getBitWidth() == Val.getBitWidth() &&</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="stringliteral">"intmax_t smaller than char/wchar_t?"</span>);</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> Result.Val = Val;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="comment">// Consume the token.</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> Result.setRange(PeekTok.<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>());</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> }</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keywordflow">case</span> tok::l_paren: {</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</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> Start = PeekTok.<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>();</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok); <span class="comment">// Eat the (.</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="comment">// Parse the value and if there are any binary operators involved, parse</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment">// them.</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(Result, PeekTok, DT, ValueLive, PP)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment">// If this is a silly value like (X), which doesn't need parens, check for</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment">// !(defined X).</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keywordflow">if</span> (PeekTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment">// Just use DT unmodified as our result.</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment">// Otherwise, we have something like (x+y), and we consumed '(x'.</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a85e2d947a59173ca006391dc777f1362">EvaluateDirectiveSubExpr</a>(Result, 1, PeekTok, ValueLive, PP))</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keywordflow">if</span> (PeekTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok.<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_pp_expected_rparen)</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> << Result.getRange();</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Start, diag::note_matching) << <span class="stringliteral">"("</span>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</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> DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> = <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a4fb842b2f0e8e94b7e039862059615b6">DefinedTracker::Unknown</a>;</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> Result.setRange(Start, PeekTok.<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>());</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok); <span class="comment">// Eat the ).</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keywordflow">return</span> <span class="keyword">false</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> <span class="keywordflow">case</span> tok::plus: {</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</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> Start = PeekTok.<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>();</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="comment">// Unary plus doesn't modify the value.</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(Result, PeekTok, DT, ValueLive, PP)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> Result.setBegin(Start);</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="keywordflow">return</span> <span class="keyword">false</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="keywordflow">case</span> tok::minus: {</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</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 = PeekTok.<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>();</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(Result, PeekTok, DT, ValueLive, PP)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> Result.setBegin(Loc);</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> <span class="comment">// C99 6.5.3.3p3: The sign of the result matches the sign of the operand.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> Result.Val = -Result.Val;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="comment">// -MININT is the only thing that overflows. Unsigned never overflows.</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="keywordtype">bool</span> Overflow = !Result.isUnsigned() && Result.Val.isMinSignedValue();</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> <span class="comment">// If this operator is live and overflowed, report the issue.</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keywordflow">if</span> (Overflow && ValueLive)</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Loc, diag::warn_pp_expr_overflow) << Result.getRange();</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> DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> = <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a4fb842b2f0e8e94b7e039862059615b6">DefinedTracker::Unknown</a>;</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"> 382</span> <span class="keywordflow">case</span> tok::tilde: {</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</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> Start = PeekTok.<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>();</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(Result, PeekTok, DT, ValueLive, PP)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> Result.setBegin(Start);</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> <span class="comment">// C99 6.5.3.3p4: The sign of the result matches the sign of the operand.</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> Result.Val = ~Result.Val;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> = <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a4fb842b2f0e8e94b7e039862059615b6">DefinedTracker::Unknown</a>;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> }</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="keywordflow">case</span> tok::exclaim: {</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</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> Start = PeekTok.<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>();</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(Result, PeekTok, DT, ValueLive, PP)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> Result.setBegin(Start);</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> Result.Val = !Result.Val;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="comment">// C99 6.5.3.3p5: The sign of the result is 'int', aka it is signed.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> Result.Val.setIsUnsigned(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="keywordflow">if</span> (DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> == <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685af8aaf21b7d504677205a1a7b69469ead">DefinedTracker::DefinedMacro</a>)</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> = <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a955fe314f3d4920a5ba71bb17d17137f">DefinedTracker::NotDefinedMacro</a>;</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> == <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a955fe314f3d4920a5ba71bb17d17137f">DefinedTracker::NotDefinedMacro</a>)</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> = <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685af8aaf21b7d504677205a1a7b69469ead">DefinedTracker::DefinedMacro</a>;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> }</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="comment">// FIXME: Handle #assert</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> }</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> }</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> </div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment"></span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="comment">/// getPrecedence - Return the precedence of the specified binary operator</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="comment">/// token. This returns:</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="comment">/// ~0 - Invalid token.</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="comment">/// 14 -> 3 - various operators.</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="comment">/// 0 - 'eod' or ')'</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"><a class="code" href="PPExpressions_8cpp.html#ad04136d99ab8cff5aa760cb889c90460"> 421</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="PPExpressions_8cpp.html#ad04136d99ab8cff5aa760cb889c90460">getPrecedence</a>(<a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>) {</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keywordflow">switch</span> (Kind) {</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keywordflow">default</span>: <span class="keywordflow">return</span> ~0U;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keywordflow">case</span> tok::percent:</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keywordflow">case</span> tok::slash:</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keywordflow">case</span> tok::star: <span class="keywordflow">return</span> 14;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="keywordflow">case</span> tok::plus:</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">case</span> tok::minus: <span class="keywordflow">return</span> 13;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keywordflow">case</span> tok::lessless:</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keywordflow">case</span> tok::greatergreater: <span class="keywordflow">return</span> 12;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keywordflow">case</span> tok::lessequal:</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keywordflow">case</span> tok::less:</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keywordflow">case</span> tok::greaterequal:</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keywordflow">case</span> tok::greater: <span class="keywordflow">return</span> 11;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keywordflow">case</span> tok::exclaimequal:</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keywordflow">case</span> tok::equalequal: <span class="keywordflow">return</span> 10;</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="keywordflow">case</span> tok::amp: <span class="keywordflow">return</span> 9;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keywordflow">case</span> tok::caret: <span class="keywordflow">return</span> 8;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keywordflow">case</span> tok::pipe: <span class="keywordflow">return</span> 7;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keywordflow">case</span> tok::ampamp: <span class="keywordflow">return</span> 6;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keywordflow">case</span> tok::pipepipe: <span class="keywordflow">return</span> 5;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keywordflow">case</span> tok::question: <span class="keywordflow">return</span> 4;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="keywordflow">case</span> tok::comma: <span class="keywordflow">return</span> 3;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="keywordflow">case</span> tok::colon: <span class="keywordflow">return</span> 2;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keywordflow">case</span> tok::r_paren: <span class="keywordflow">return</span> 0;<span class="comment">// Lowest priority, end of expr.</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keywordflow">case</span> tok::eod: <span class="keywordflow">return</span> 0;<span class="comment">// Lowest priority, end of directive.</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> }</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> }</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment"></span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment">/// EvaluateDirectiveSubExpr - Evaluate the subexpression whose first token is</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="comment">/// PeekTok, and whose precedence is PeekPrec. This returns the result in LHS.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment">/// If ValueLive is false, then this value is being evaluated in a context where</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment">/// the result is not used. As such, avoid diagnostics that relate to</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">/// evaluation, such as division by zero warnings.</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"><a class="code" href="PPExpressions_8cpp.html#a85e2d947a59173ca006391dc777f1362"> 457</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPExpressions_8cpp.html#a85e2d947a59173ca006391dc777f1362">EvaluateDirectiveSubExpr</a>(PPValue &LHS, <span class="keywordtype">unsigned</span> MinPrec,</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <a class="code" href="classclang_1_1Token.html">Token</a> &PeekTok, <span class="keywordtype">bool</span> ValueLive,</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keywordtype">unsigned</span> PeekPrec = <a class="code" href="PPExpressions_8cpp.html#ad04136d99ab8cff5aa760cb889c90460">getPrecedence</a>(PeekTok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>());</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="comment">// If this token isn't valid, report the error.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keywordflow">if</span> (PeekPrec == ~0U) {</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok.<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_pp_expr_bad_token_binop)</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> << LHS.getRange();</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> }</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="comment">// If this token has a lower precedence than we are allowed to parse, return</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="comment">// it so that higher levels of the recursion can parse it.</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">if</span> (PeekPrec < MinPrec)</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a> Operator = PeekTok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>();</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="comment">// If this is a short-circuiting operator, see if the RHS of the operator is</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="comment">// dead. Note that this cannot just clobber ValueLive. Consider</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="comment">// "0 && 1 ? 4 : 1 / 0", which is parsed as "(0 && 1) ? 4 : (1 / 0)". In</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="comment">// this example, the RHS of the && being dead does not make the rest of the</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="comment">// expr dead.</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="keywordtype">bool</span> RHSIsLive;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="keywordflow">if</span> (Operator == tok::ampamp && LHS.Val == 0)</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> RHSIsLive = <span class="keyword">false</span>; <span class="comment">// RHS of "0 && x" is dead.</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Operator == tok::pipepipe && LHS.Val != 0)</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> RHSIsLive = <span class="keyword">false</span>; <span class="comment">// RHS of "1 || x" is dead.</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Operator == tok::question && LHS.Val == 0)</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> RHSIsLive = <span class="keyword">false</span>; <span class="comment">// RHS (x) of "0 ? x : y" is dead.</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> RHSIsLive = ValueLive;</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment">// Consume the operator, remembering the operator's location for reporting.</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</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> OpLoc = PeekTok.<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>();</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</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> PPValue RHS(LHS.getBitWidth());</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="comment">// Parse the RHS of the operator.</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <a class="code" href="structDefinedTracker.html">DefinedTracker</a> DT;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(RHS, PeekTok, DT, RHSIsLive, PP)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="comment">// Remember the precedence of this operator and get the precedence of the</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="comment">// operator immediately to the right of the RHS.</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="keywordtype">unsigned</span> ThisPrec = PeekPrec;</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> PeekPrec = <a class="code" href="PPExpressions_8cpp.html#ad04136d99ab8cff5aa760cb889c90460">getPrecedence</a>(PeekTok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>());</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment">// If this token isn't valid, report the error.</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="keywordflow">if</span> (PeekPrec == ~0U) {</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok.<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_pp_expr_bad_token_binop)</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> << RHS.getRange();</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> }</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="comment">// Decide whether to include the next binop in this subexpression. For</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="comment">// example, when parsing x+y*z and looking at '*', we want to recursively</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="comment">// handle y*z as a single subexpression. We do this because the precedence</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="comment">// of * is higher than that of +. The only strange case we have to handle</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="comment">// here is for the ?: operator, where the precedence is actually lower than</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="comment">// the LHS of the '?'. The grammar rule is:</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="comment">// conditional-expression ::=</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="comment">// logical-OR-expression ? expression : conditional-expression</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="comment">// where 'expression' is actually comma-expression.</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="keywordtype">unsigned</span> RHSPrec;</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">if</span> (Operator == tok::question)</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="comment">// The RHS of "?" should be maximally consumed as an expression.</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> RHSPrec = <a class="code" href="PPExpressions_8cpp.html#ad04136d99ab8cff5aa760cb889c90460">getPrecedence</a>(tok::comma);</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="keywordflow">else</span> <span class="comment">// All others should munch while higher precedence.</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> RHSPrec = ThisPrec+1;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="keywordflow">if</span> (PeekPrec >= RHSPrec) {</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a85e2d947a59173ca006391dc777f1362">EvaluateDirectiveSubExpr</a>(RHS, RHSPrec, PeekTok, RHSIsLive, PP))</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> PeekPrec = <a class="code" href="PPExpressions_8cpp.html#ad04136d99ab8cff5aa760cb889c90460">getPrecedence</a>(PeekTok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>());</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> }</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> assert(PeekPrec <= ThisPrec && <span class="stringliteral">"Recursion didn't work!"</span>);</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="comment">// Usual arithmetic conversions (C99 6.3.1.8p1): result is unsigned if</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="comment">// either operand is unsigned.</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> llvm::APSInt Res(LHS.getBitWidth());</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">switch</span> (Operator) {</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="keywordflow">case</span> tok::question: <span class="comment">// No UAC for x and y in "x ? y : z".</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="keywordflow">case</span> tok::lessless: <span class="comment">// Shift amount doesn't UAC with shift value.</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keywordflow">case</span> tok::greatergreater: <span class="comment">// Shift amount doesn't UAC with shift value.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">case</span> tok::comma: <span class="comment">// Comma operands are not subject to UACs.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">case</span> tok::pipepipe: <span class="comment">// Logical || does not do UACs.</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="keywordflow">case</span> tok::ampamp: <span class="comment">// Logical && does not do UACs.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">break</span>; <span class="comment">// No UAC</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> Res.setIsUnsigned(LHS.isUnsigned()|RHS.isUnsigned());</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="comment">// If this just promoted something from signed to unsigned, and if the</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="comment">// value was negative, warn about it.</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">if</span> (ValueLive && Res.isUnsigned()) {</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">if</span> (!LHS.isUnsigned() && LHS.Val.isNegative())</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OpLoc, diag::warn_pp_convert_lhs_to_positive)</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> << LHS.Val.toString(10, <span class="keyword">true</span>) + <span class="stringliteral">" to "</span> +</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> LHS.Val.toString(10, <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> << LHS.getRange() << RHS.getRange();</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="keywordflow">if</span> (!RHS.isUnsigned() && RHS.Val.isNegative())</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OpLoc, diag::warn_pp_convert_rhs_to_positive)</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> << RHS.Val.toString(10, <span class="keyword">true</span>) + <span class="stringliteral">" to "</span> +</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> RHS.Val.toString(10, <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> << LHS.getRange() << RHS.getRange();</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> }</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> LHS.Val.setIsUnsigned(Res.isUnsigned());</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> RHS.Val.setIsUnsigned(Res.isUnsigned());</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> }</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="keywordtype">bool</span> Overflow = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="keywordflow">switch</span> (Operator) {</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="keywordflow">default</span>: llvm_unreachable(<span class="stringliteral">"Unknown operator token!"</span>);</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="keywordflow">case</span> tok::percent:</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="keywordflow">if</span> (RHS.Val != 0)</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> Res = LHS.Val % RHS.Val;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ValueLive) {</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OpLoc, diag::err_pp_remainder_by_zero)</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> << LHS.getRange() << RHS.getRange();</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> }</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="keywordflow">case</span> tok::slash:</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="keywordflow">if</span> (RHS.Val != 0) {</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="keywordflow">if</span> (LHS.Val.isSigned())</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> Res = llvm::APSInt(LHS.Val.sdiv_ov(RHS.Val, Overflow), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> Res = LHS.Val / RHS.Val;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ValueLive) {</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OpLoc, diag::err_pp_division_by_zero)</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> << LHS.getRange() << RHS.getRange();</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> }</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="keywordflow">case</span> tok::star:</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">if</span> (Res.isSigned())</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> Res = llvm::APSInt(LHS.Val.smul_ov(RHS.Val, Overflow), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> Res = LHS.Val * RHS.Val;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">case</span> tok::lessless: {</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="comment">// Determine whether overflow is about to happen.</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="keywordtype">unsigned</span> ShAmt = <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(RHS.Val.getLimitedValue());</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="keywordflow">if</span> (LHS.isUnsigned()) {</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> Overflow = ShAmt >= LHS.Val.getBitWidth();</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">if</span> (Overflow)</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> ShAmt = LHS.Val.getBitWidth()-1;</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> Res = LHS.Val << ShAmt;</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> Res = llvm::APSInt(LHS.Val.sshl_ov(ShAmt, Overflow), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> }</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> }</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="keywordflow">case</span> tok::greatergreater: {</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="comment">// Determine whether overflow is about to happen.</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="keywordtype">unsigned</span> ShAmt = <span class="keyword">static_cast<</span><span class="keywordtype">unsigned</span><span class="keyword">></span>(RHS.Val.getLimitedValue());</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="keywordflow">if</span> (ShAmt >= LHS.getBitWidth())</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> Overflow = <span class="keyword">true</span>, ShAmt = LHS.getBitWidth()-1;</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> Res = LHS.Val >> ShAmt;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> }</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="keywordflow">case</span> tok::plus:</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">if</span> (LHS.isUnsigned())</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> Res = LHS.Val + RHS.Val;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> Res = llvm::APSInt(LHS.Val.sadd_ov(RHS.Val, Overflow), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="keywordflow">case</span> tok::minus:</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="keywordflow">if</span> (LHS.isUnsigned())</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> Res = LHS.Val - RHS.Val;</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> Res = llvm::APSInt(LHS.Val.ssub_ov(RHS.Val, Overflow), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="keywordflow">case</span> tok::lessequal:</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> Res = LHS.Val <= RHS.Val;</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> Res.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// C99 6.5.8p6, result is always int (signed)</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="keywordflow">case</span> tok::less:</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> Res = LHS.Val < RHS.Val;</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> Res.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// C99 6.5.8p6, result is always int (signed)</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="keywordflow">case</span> tok::greaterequal:</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> Res = LHS.Val >= RHS.Val;</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> Res.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// C99 6.5.8p6, result is always int (signed)</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">case</span> tok::greater:</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> Res = LHS.Val > RHS.Val;</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> Res.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// C99 6.5.8p6, result is always int (signed)</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keywordflow">case</span> tok::exclaimequal:</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> Res = LHS.Val != RHS.Val;</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> Res.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// C99 6.5.9p3, result is always int (signed)</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="keywordflow">case</span> tok::equalequal:</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> Res = LHS.Val == RHS.Val;</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> Res.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// C99 6.5.9p3, result is always int (signed)</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">case</span> tok::amp:</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> Res = LHS.Val & RHS.Val;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="keywordflow">case</span> tok::caret:</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> Res = LHS.Val ^ RHS.Val;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="keywordflow">case</span> tok::pipe:</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> Res = LHS.Val | RHS.Val;</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="keywordflow">case</span> tok::ampamp:</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> Res = (LHS.Val != 0 && RHS.Val != 0);</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> Res.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// C99 6.5.13p3, result is always int (signed)</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="keywordflow">case</span> tok::pipepipe:</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> Res = (LHS.Val != 0 || RHS.Val != 0);</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> Res.setIsUnsigned(<span class="keyword">false</span>); <span class="comment">// C99 6.5.14p3, result is always int (signed)</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="keywordflow">case</span> tok::comma:</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="comment">// Comma is invalid in pp expressions in c89/c++ mode, but is valid in C99</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="comment">// if not being evaluated.</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="keywordflow">if</span> (!PP.<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().C99 || ValueLive)</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OpLoc, diag::ext_pp_comma_expr)</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> << LHS.getRange() << RHS.getRange();</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> Res = RHS.Val; <span class="comment">// LHS = LHS,RHS -> RHS.</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="keywordflow">case</span> tok::question: {</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="comment">// Parse the : part of the expression.</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="keywordflow">if</span> (PeekTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::colon)) {</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PeekTok.<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_expected_colon)</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> << LHS.getRange(), RHS.getRange();</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OpLoc, diag::note_matching) << <span class="stringliteral">"?"</span>;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> }</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="comment">// Consume the :.</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(PeekTok);</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> </div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="comment">// Evaluate the value after the :.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="keywordtype">bool</span> AfterColonLive = ValueLive && LHS.Val == 0;</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> PPValue AfterColonVal(LHS.getBitWidth());</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <a class="code" href="structDefinedTracker.html">DefinedTracker</a> DT;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(AfterColonVal, PeekTok, DT, AfterColonLive, PP))</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="comment">// Parse anything after the : with the same precedence as ?. We allow</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="comment">// things of equal precedence because ?: is right associative.</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a85e2d947a59173ca006391dc777f1362">EvaluateDirectiveSubExpr</a>(AfterColonVal, ThisPrec,</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> PeekTok, AfterColonLive, PP))</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> </div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="comment">// Now that we have the condition, the LHS and the RHS of the :, evaluate.</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> Res = LHS.Val != 0 ? RHS.Val : AfterColonVal.Val;</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> RHS.setEnd(AfterColonVal.getRange().getEnd());</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> <span class="comment">// Usual arithmetic conversions (C99 6.3.1.8p1): result is unsigned if</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="comment">// either operand is unsigned.</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> Res.setIsUnsigned(RHS.isUnsigned() | AfterColonVal.isUnsigned());</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="comment">// Figure out the precedence of the token after the : part.</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> PeekPrec = <a class="code" href="PPExpressions_8cpp.html#ad04136d99ab8cff5aa760cb889c90460">getPrecedence</a>(PeekTok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>());</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> }</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="keywordflow">case</span> tok::colon:</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="comment">// Don't allow :'s to float around without being part of ?: exprs.</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OpLoc, diag::err_pp_colon_without_question)</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> << LHS.getRange() << RHS.getRange();</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="comment">// If this operator is live and overflowed, report the issue.</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="keywordflow">if</span> (Overflow && ValueLive)</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OpLoc, diag::warn_pp_expr_overflow)</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> << LHS.getRange() << RHS.getRange();</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="comment">// Put the result back into 'LHS' for our next iteration.</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> LHS.Val = Res;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> LHS.setEnd(RHS.getRange().getEnd());</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> }</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> }</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="comment"></span></div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="comment">/// EvaluateDirectiveExpression - Evaluate an integer constant expression that</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="comment">/// may occur after a #if or #elif directive. If the expression is equivalent</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="comment">/// to "!defined(X)" return X in IfNDefMacro.</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="comment"></span><span class="keywordtype">bool</span> Preprocessor::</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> EvaluateDirectiveExpression(<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *&IfNDefMacro) {</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <a class="code" href="structllvm_1_1SaveAndRestore.html">SaveAndRestore<bool></a> PPDir(ParsingIfOrElifDirective, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="comment">// Save the current state of 'DisableMacroExpansion' and reset it to false. If</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="comment">// 'DisableMacroExpansion' is true, then we must be in a macro argument list</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="comment">// in which case a directive is undefined behavior. We want macros to be able</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="comment">// to recursively expand in order to get more gcc-list behavior, so we force</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="comment">// DisableMacroExpansion to false and restore it when we're done parsing the</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="comment">// expression.</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="keywordtype">bool</span> DisableMacroExpansionAtStartOfDirective = DisableMacroExpansion;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> DisableMacroExpansion = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="comment">// Peek ahead one token.</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(Tok);</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> </div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="comment">// C99 6.10.1p3 - All expressions are evaluated as intmax_t or uintmax_t.</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="keywordtype">unsigned</span> BitWidth = <a class="code" href="classclang_1_1Preprocessor.html#ac6865d870ca2177999249afe34042082">getTargetInfo</a>().<a class="code" href="classclang_1_1TargetInfo.html#a9fe7836da0c1ff1d40a8b7df700410e3" title="Return the size of intmax_t and uintmax_t for this target, in bits.">getIntMaxTWidth</a>();</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> PPValue ResVal(BitWidth);</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <a class="code" href="structDefinedTracker.html">DefinedTracker</a> DT;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a113320faddaa02b15474c53610c6748f">EvaluateValue</a>(ResVal, Tok, DT, <span class="keyword">true</span>, *<span class="keyword">this</span>)) {</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="comment">// Parse error, skip the rest of the macro line.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod))</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> </div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="comment">// Restore 'DisableMacroExpansion'.</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> DisableMacroExpansion = DisableMacroExpansionAtStartOfDirective;</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> }</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="comment">// If we are at the end of the expression after just parsing a value, there</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="comment">// must be no (unparenthesized) binary operators involved, so we can exit</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="comment">// directly.</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) {</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="comment">// If the expression we parsed was of the form !defined(macro), return the</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="comment">// macro in IfNDefMacro.</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="keywordflow">if</span> (DT.<a class="code" href="structDefinedTracker.html#abb907703a87e60846b975a5382e9b663">State</a> == <a class="code" href="structDefinedTracker.html#a13513817c34a39ad5b37306b97f80685a955fe314f3d4920a5ba71bb17d17137f">DefinedTracker::NotDefinedMacro</a>)</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> IfNDefMacro = DT.<a class="code" href="structDefinedTracker.html#a83c975fd129a2ce4f730788809f1f590">TheMacro</a>;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> </div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="comment">// Restore 'DisableMacroExpansion'.</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> DisableMacroExpansion = DisableMacroExpansionAtStartOfDirective;</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="keywordflow">return</span> ResVal.Val != 0;</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> }</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="comment">// Otherwise, we must have a binary operator (e.g. "#if 1 < 2"), so parse the</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="comment">// operator and the stuff after it.</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="keywordflow">if</span> (<a class="code" href="PPExpressions_8cpp.html#a85e2d947a59173ca006391dc777f1362">EvaluateDirectiveSubExpr</a>(ResVal, <a class="code" href="PPExpressions_8cpp.html#ad04136d99ab8cff5aa760cb889c90460">getPrecedence</a>(tok::question),</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> Tok, <span class="keyword">true</span>, *<span class="keyword">this</span>)) {</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="comment">// Parse error, skip the rest of the macro line.</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod))</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="comment">// Restore 'DisableMacroExpansion'.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> DisableMacroExpansion = DisableMacroExpansionAtStartOfDirective;</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> }</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="comment">// If we aren't at the tok::eod token, something bad happened, like an extra</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="comment">// ')' token.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod)) {</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_expected_eol);</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</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"> 801</span> </div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="comment">// Restore 'DisableMacroExpansion'.</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> DisableMacroExpansion = DisableMacroExpansionAtStartOfDirective;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> <span class="keywordflow">return</span> ResVal.Val != 0;</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:52 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/PPExpressions_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPExpressions_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPExpressions_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPExpressions_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,361 @@
+<!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: PPExpressions.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">PPExpressions.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPExpressions_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/PPExpressions.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/PPExpressions.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> PPExpressions.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>/Preprocessor.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/Builtins.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/LLVM.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def \</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/Diagnostic.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/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/ADT/StringRef.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</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="l00020"></a><span class="lineno"> 20</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="l00021"></a><span class="lineno"> 21</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="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</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="l00032"></a><span class="lineno"> 32</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="l00033"></a><span class="lineno"> 33</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="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/tools/clang/lib/<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="l00039"></a><span class="lineno"> 39</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="l00040"></a><span class="lineno"> 40</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="l00041"></a><span class="lineno"> 41</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="l00042"></a><span class="lineno"> 42</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="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</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="l00048"></a><span class="lineno"> 48</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="l00049"></a><span class="lineno"> 49</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="l00050"></a><span class="lineno"> 50</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="l00051"></a><span class="lineno"> 51</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="l00052"></a><span class="lineno"> 52</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="l00053"></a><span class="lineno"> 53</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="l00054"></a><span class="lineno"> 54</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="l00055"></a><span class="lineno"> 55</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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/Module.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/SourceManager.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/FileManager.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</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="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/include/llvm-c/Core.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>/PPCallbacks.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>/DirectoryLookup.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</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/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</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="l00084"></a><span class="lineno"> 84</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="l00085"></a><span class="lineno"> 85</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="l00086"></a><span class="lineno"> 86</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="l00087"></a><span class="lineno"> 87</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</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>/CodeCompletionHandler.h \</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>/LexDiagnostic.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LiteralSupport.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</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="l00093"></a><span class="lineno"> 93</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.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/IntrusiveRefCntPtr.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/Compiler.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/Config/llvm-config.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/ADT/StringRef.h:</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def:</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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def:</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/SmallString.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.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/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> /home/tstellar/llvm/tools/clang/lib/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> /home/tstellar/llvm/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="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/<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="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</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/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="l00195"></a><span class="lineno"> 195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> /home/tstellar/llvm/tools/clang/lib/<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="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> /home/tstellar/llvm/tools/clang/lib/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.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/<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="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.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/SmallSet.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/SmallPtrSet.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.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/OwningPtr.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/Support/FileSystem.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/TimeValue.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.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-c/Core.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetCXXABI.h:</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Specifiers.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetOptions.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/CodeCompletionHandler.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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc:</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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CharInfo.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/include/llvm/ADT/APInt.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/ADT/APSInt.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/SaveAndRestore.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:52 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/PPLexerChange_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPLexerChange_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPLexerChange_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPLexerChange_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,666 @@
+<!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: PPLexerChange.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">PPLexerChange.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPLexerChange_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">//===--- PPLexerChange.cpp - Handle changing lexers in the preprocessor ---===//</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 pieces of the Preprocessor interface that manage the</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// current lexer stack.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</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="l00017"></a><span class="lineno"> 17</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="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="HeaderSearch_8h.html">clang/Lex/HeaderSearch.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="LexDiagnostic_8h.html">clang/Lex/LexDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="MacroInfo_8h.html" title="Defines the clang::MacroInfo and clang::MacroDirective classes.">clang/Lex/MacroInfo.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "llvm/ADT/StringSwitch.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "llvm/Support/FileSystem.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "llvm/Support/MemoryBuffer.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "llvm/Support/Path.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classclang_1_1PPCallbacks.html#a37be72416ee8bbdd97ca9e927fd6502a"> 27</a></span> <a class="code" href="classclang_1_1PPCallbacks.html#a37be72416ee8bbdd97ca9e927fd6502a">PPCallbacks::~PPCallbacks</a>() {}</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="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// Miscellaneous Methods.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">/// isInPrimaryFile - Return true if we're in the top-level file, not in a</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">/// \#include. This looks through macro expansions and active _Pragma lexers.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#ab581c0e71888401a14771ca1d5c70612"> 35</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Preprocessor.html#ab581c0e71888401a14771ca1d5c70612" title="Return true if we're in the top-level file, not in a #include.">Preprocessor::isInPrimaryFile</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> (IsFileLexer())</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> IncludeMacroStack.empty();</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// If there are any stacked lexers, we're in a #include.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> assert(IsFileLexer(IncludeMacroStack[0]) &&</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="stringliteral">"Top level include stack isn't our primary lexer?"</span>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 1, e = IncludeMacroStack.size(); i != e; ++i)</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">if</span> (IsFileLexer(IncludeMacroStack[i]))</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> <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> <span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">/// getCurrentLexer - Return the current file lexer being lexed from. Note</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">/// that this ignores any potentially active macro expansions and _Pragma</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">/// expansions going on at the time.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a11a6206e7d47ca4d8509b97e3a0da167"> 51</a></span> <span class="comment"></span><a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a> *<a class="code" href="classclang_1_1Preprocessor.html#a11a6206e7d47ca4d8509b97e3a0da167">Preprocessor::getCurrentFileLexer</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">if</span> (IsFileLexer())</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> CurPPLexer;</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">// Look for a stacked lexer.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = IncludeMacroStack.size(); i != 0; --i) {</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">const</span> IncludeStackInfo& ISI = IncludeMacroStack[i-1];</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">if</span> (IsFileLexer(ISI))</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> ISI.ThePPLexer;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span> 0;</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> </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="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// Methods for Entering and Callbacks for leaving various contexts</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">/// EnterSourceFile - Add a source file to the top of the include stack and</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">/// start lexing tokens from it instead of the current buffer.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a89fb5fef6b3a02bdf4683761f21983bc"> 71</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a89fb5fef6b3a02bdf4683761f21983bc">Preprocessor::EnterSourceFile</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> FID, <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *CurDir,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> assert(!CurTokenLexer && <span class="stringliteral">"Cannot #include a file inside a macro!"</span>);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> ++NumEnteredSourceFiles;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">if</span> (MaxIncludeStackDepth < IncludeMacroStack.size())</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> MaxIncludeStackDepth = IncludeMacroStack.size();</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">if</span> (PTH) {</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a> *PL = PTH->CreateLexer(FID)) {</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> EnterSourceFileWithPTH(PL, CurDir);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</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> }</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">// Get the MemoryBuffer for this FID, if it fails, we fail.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">const</span> llvm::MemoryBuffer *InputFile = </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a35f2a3fbf5cf9bff34b1d7f613096437" title="Return the buffer for the specified FileID.">getBuffer</a>(FID, Loc, &Invalid);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">if</span> (Invalid) {</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</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> FileStart = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e" title="Return the source location corresponding to the first byte of the specified file.">getLocForStartOfFile</a>(FID);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Loc, diag::err_pp_error_opening_file)</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> << std::string(SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#abe4f1b848fbaa9d9ce39c5ceab826965" title="Return the filename or buffer identifier of the buffer the location is in.">getBufferName</a>(FileStart)) << <span class="stringliteral">""</span>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> }</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a3d125fddd1ffa39b83b9e880dcd758ac" title="Determine if we are performing code completion.">isCodeCompletionEnabled</a>() &&</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(FID) == CodeCompletionFile) {</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> CodeCompletionFileLoc = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e" title="Return the source location corresponding to the first byte of the specified file.">getLocForStartOfFile</a>(FID);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> CodeCompletionLoc =</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> CodeCompletionFileLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1abf1cac74e512604b1f2c8921a446fa" title="Return a source location with the specified offset from this SourceLocation.">getLocWithOffset</a>(CodeCompletionOffset);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> EnterSourceFileWithLexer(<span class="keyword">new</span> <a class="code" href="classclang_1_1Lexer.html">Lexer</a>(FID, InputFile, *<span class="keyword">this</span>), CurDir);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</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> <span class="comment"></span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">/// EnterSourceFileWithLexer - Add a source file to the top of the include stack</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">/// and start lexing tokens from it instead of the current buffer.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::EnterSourceFileWithLexer(<a class="code" href="classclang_1_1Lexer.html">Lexer</a> *TheLexer,</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *CurDir) {</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">// Add the current lexer to the include stack.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span> (CurPPLexer || CurTokenLexer)</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> PushIncludeMacroStack();</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> CurLexer.reset(TheLexer);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> CurPPLexer = TheLexer;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> CurDirLookup = CurDir;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">if</span> (CurLexerKind != CLK_LexAfterModuleImport)</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> CurLexerKind = CLK_Lexer;</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> <span class="comment">// Notify the client, if desired, that we are in a new source file.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (Callbacks && !CurLexer->Is_PragmaLexer) {</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> FileType =</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a0a6faf535b8f3f23e64be0cb4eac99c3" title="Return the file characteristic of the specified source location, indicating whether this is a normal ...">getFileCharacteristic</a>(CurLexer->getFileLoc());</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> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a78301b4ade3244c79b9731a58f115934" title="Callback invoked whenever a source file is entered or exited.">FileChanged</a>(CurLexer->getFileLoc(),</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464ea49a706f5a1cf44ae7f0396dc8e5af5dc">PPCallbacks::EnterFile</a>, FileType);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"></span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">/// EnterSourceFileWithPTH - Add a source file to the top of the include stack</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">/// and start getting tokens from it using the PTH cache.</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::EnterSourceFileWithPTH(<a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a> *PL,</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *CurDir) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">if</span> (CurPPLexer || CurTokenLexer)</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> PushIncludeMacroStack();</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> CurDirLookup = CurDir;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> CurPTHLexer.reset(PL);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> CurPPLexer = CurPTHLexer.get();</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">if</span> (CurLexerKind != CLK_LexAfterModuleImport)</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> CurLexerKind = CLK_PTHLexer;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// Notify the client, if desired, that we are in a new source file.</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span> (Callbacks) {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>();</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</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> EnterLoc = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e" title="Return the source location corresponding to the first byte of the specified file.">getLocForStartOfFile</a>(FID);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> FileType =</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a0a6faf535b8f3f23e64be0cb4eac99c3" title="Return the file characteristic of the specified source location, indicating whether this is a normal ...">getFileCharacteristic</a>(EnterLoc);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a78301b4ade3244c79b9731a58f115934" title="Callback invoked whenever a source file is entered or exited.">FileChanged</a>(EnterLoc, <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464ea49a706f5a1cf44ae7f0396dc8e5af5dc">PPCallbacks::EnterFile</a>, FileType);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> }</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> }</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment"></span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment">/// EnterMacro - Add a Macro to the top of the include stack and start lexing</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">/// tokens from it instead of the current buffer.</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a1f329511955dcb01878235bd511954a3"> 159</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a1f329511955dcb01878235bd511954a3">Preprocessor::EnterMacro</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok, <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> ILEnd,</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *Macro, <a class="code" href="classclang_1_1MacroArgs.html">MacroArgs</a> *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) {</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <a class="code" href="classclang_1_1TokenLexer.html">TokenLexer</a> *TokLexer;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span> (NumCachedTokenLexers == 0) {</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> TokLexer = <span class="keyword">new</span> <a class="code" href="classclang_1_1TokenLexer.html">TokenLexer</a>(Tok, ILEnd, Macro, Args, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> TokLexer = TokenLexerCache[--NumCachedTokenLexers];</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> TokLexer-><a class="code" href="classclang_1_1TokenLexer.html#afd12bad885dde5d1ca9e3b5c5e948267">Init</a>(Tok, ILEnd, Macro, Args);</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> PushIncludeMacroStack();</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> CurDirLookup = 0;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> CurTokenLexer.reset(TokLexer);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">if</span> (CurLexerKind != CLK_LexAfterModuleImport)</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> CurLexerKind = CLK_TokenLexer;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment"></span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">/// EnterTokenStream - Add a "macro" context to the top of the include stack,</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">/// which will cause the lexer to start returning the specified tokens.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">/// If DisableMacroExpansion is true, tokens lexed from the token stream will</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">/// not be subject to further macro expansion. Otherwise, these tokens will</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">/// be re-macro-expanded when/if expansion is enabled.</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">/// If OwnsTokens is false, this method assumes that the specified stream of</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">/// tokens has a permanent owner somewhere, so they do not need to be copied.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">/// If it is true, it assumes the array of tokens is allocated with new[] and</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">/// must be freed.</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"><a class="code" href="classclang_1_1Preprocessor.html#a4869ffa7c1268e6e7cbd8fd5b7b0364d"> 188</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a4869ffa7c1268e6e7cbd8fd5b7b0364d">Preprocessor::EnterTokenStream</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> *Toks, <span class="keywordtype">unsigned</span> NumToks,</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keywordtype">bool</span> DisableMacroExpansion,</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keywordtype">bool</span> OwnsTokens) {</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// Create a macro expander to expand from the specified token stream.</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <a class="code" href="classclang_1_1TokenLexer.html">TokenLexer</a> *TokLexer;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">if</span> (NumCachedTokenLexers == 0) {</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> TokLexer = <span class="keyword">new</span> <a class="code" href="classclang_1_1TokenLexer.html">TokenLexer</a>(Toks, NumToks, DisableMacroExpansion,</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> OwnsTokens, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> TokLexer = TokenLexerCache[--NumCachedTokenLexers];</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> TokLexer-><a class="code" href="classclang_1_1TokenLexer.html#afd12bad885dde5d1ca9e3b5c5e948267">Init</a>(Toks, NumToks, DisableMacroExpansion, OwnsTokens);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// Save our current state.</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> PushIncludeMacroStack();</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> CurDirLookup = 0;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> CurTokenLexer.reset(TokLexer);</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">if</span> (CurLexerKind != CLK_LexAfterModuleImport)</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> CurLexerKind = CLK_TokenLexer;</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="comment"></span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">/// \brief Compute the relative path that names the given file relative to</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">/// the given directory.</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="code" href="PPLexerChange_8cpp.html#ae4add89c0dbc605373edeb72189b9fc2"> 211</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="PPLexerChange_8cpp.html#ae4add89c0dbc605373edeb72189b9fc2" title="Compute the relative path that names the given file relative to the given directory.">computeRelativePath</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> &FM, <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="l00212"></a><span class="lineno"> 212</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="l00213"></a><span class="lineno"> 213</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> &Result) {</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> Result.clear();</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> StringRef FilePath = File-><a class="code" href="classclang_1_1FileEntry.html#a93533898e5cfd56df70289244f623fd6" title="Return the directory the file lives in.">getDir</a>()-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>();</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> StringRef Path = FilePath;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">while</span> (!Path.empty()) {</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *CurDir = FM.<a class="code" href="classclang_1_1FileManager.html#a6af5df3554d6faa096998a2dd00510fc" title="Lookup, cache, and verify the specified directory (real or virtual).">getDirectory</a>(Path)) {</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">if</span> (CurDir == Dir) {</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> Result = FilePath.substr(Path.size());</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> llvm::sys::path::append(Result, </div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> llvm::sys::path::filename(File-><a class="code" href="classclang_1_1FileEntry.html#a94ddac74f217c35e19420dd6c419e25f">getName</a>()));</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> }</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> }</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> Path = llvm::sys::path::parent_path(Path);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> }</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> Result = File-><a class="code" href="classclang_1_1FileEntry.html#a94ddac74f217c35e19420dd6c419e25f">getName</a>();</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> }</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="keywordtype">void</span> Preprocessor::PropagateLineStartLeadingSpaceInfo(<a class="code" href="classclang_1_1Token.html">Token</a> &Result) {</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">if</span> (CurTokenLexer) {</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> CurTokenLexer->PropagateLineStartLeadingSpaceInfo(Result);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> }</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keywordflow">if</span> (CurLexer) {</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> CurLexer->PropagateLineStartLeadingSpaceInfo(Result);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> }</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment">// FIXME: Handle other kinds of lexers? It generally shouldn't matter,</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment">// but it might if they're empty?</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> }</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment"></span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment">/// HandleEndOfFile - This callback is invoked when the lexer hits the end of</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment">/// the current file. This either returns the EOF token or pops a level off</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment">/// the include stack and keeps going.</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#ade4c21cb35a1ae0db438638e585810c1"> 250</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Preprocessor.html#ade4c21cb35a1ae0db438638e585810c1">Preprocessor::HandleEndOfFile</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Result, <span class="keywordtype">bool</span> isEndOfMacro) {</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> assert(!CurTokenLexer &&</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="stringliteral">"Ending a file when currently in a macro!"</span>);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment">// See if this file had a controlling macro.</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">if</span> (CurPPLexer) { <span class="comment">// Not ending a macro, ignore it.</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *ControllingMacro =</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</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>()) {</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment">// Okay, this has a controlling macro, remember in HeaderFileInfo.</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</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> *FE =</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>())) {</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a01fcbeff2dddc01e28914dafef3f2e57" title="Mark the specified file as having a controlling macro.">SetFileControllingMacro</a>(FE, ControllingMacro);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *DefinedMacro =</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</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>()) {</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keywordflow">if</span> (!ControllingMacro->hasMacroDefinition() &&</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> DefinedMacro != ControllingMacro &&</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a555709a235723fb905d1a527ed49a311" title="Return true if this is the first time encountering this header.">FirstTimeLexingFile</a>(FE)) {</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> <span class="comment">// If the edit distance between the two macros is more than 50%,</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment">// DefinedMacro may not be header guard, or can be header guard of</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment">// another header file. Therefore, it maybe defining something</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment">// completely different. This can be observed in the wild when</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment">// handling feature macros or header guards in different files.</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">const</span> StringRef ControllingMacroName = ControllingMacro->getName();</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">const</span> StringRef DefinedMacroName = DefinedMacro->getName();</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> MaxHalfLength = std::max(ControllingMacroName.size(),</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> DefinedMacroName.size()) / 2;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ED = ControllingMacroName.edit_distance(</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> DefinedMacroName, <span class="keyword">true</span>, MaxHalfLength);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">if</span> (ED <= MaxHalfLength) {</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment">// Emit a warning for a bad header guard.</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#a9cc46cda81b2202845aac7f06a933d45">GetMacroLocation</a>(),</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> diag::warn_header_guard)</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> << CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#a9cc46cda81b2202845aac7f06a933d45">GetMacroLocation</a>() << ControllingMacro;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#ae5af6ad8f8e2df1dbbfe9e4dcb19f229">GetDefinedLocation</a>(),</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> diag::note_header_guard)</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> << CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#ae5af6ad8f8e2df1dbbfe9e4dcb19f229">GetDefinedLocation</a>() << DefinedMacro</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> << ControllingMacro</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> << <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#ae5af6ad8f8e2df1dbbfe9e4dcb19f229">GetDefinedLocation</a>(),</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> ControllingMacro->getName());</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> }</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> }</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> }</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</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="comment">// Complain about reaching a true EOF within arc_cf_code_audited.</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="comment">// We don't want to complain about reaching the end of a macro</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="comment">// instantiation or a _Pragma.</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">if</span> (PragmaARCCFCodeAuditedLoc.<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="l00303"></a><span class="lineno"> 303</span> !isEndOfMacro && !(CurLexer && CurLexer->Is_PragmaLexer)) {</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaARCCFCodeAuditedLoc, diag::err_pp_eof_in_arc_cf_code_audited);</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="comment">// Recover by leaving immediately.</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> PragmaARCCFCodeAuditedLoc = <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="l00308"></a><span class="lineno"> 308</span> }</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> <span class="comment">// If this is a #include'd file, pop it off the include stack and continue</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment">// lexing the #includer file.</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">if</span> (!IncludeMacroStack.empty()) {</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> <span class="comment">// If we lexed the code-completion file, act as if we reached EOF.</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a3d125fddd1ffa39b83b9e880dcd758ac" title="Determine if we are performing code completion.">isCodeCompletionEnabled</a>() && CurPPLexer &&</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e" title="Return the source location corresponding to the first byte of the specified file.">getLocForStartOfFile</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>()) ==</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> CodeCompletionFileLoc) {</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">if</span> (CurLexer) {</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> Result.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> CurLexer->FormTokenWithChars(Result, CurLexer->BufferEnd, <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>);</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> CurLexer.reset();</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> assert(CurPTHLexer && <span class="stringliteral">"Got EOF but no current lexer set!"</span>);</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> CurPTHLexer->getEOF(Result);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> CurPTHLexer.reset();</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> }</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> CurPPLexer = 0;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> }</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keywordflow">if</span> (!isEndOfMacro && CurPPLexer &&</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> SourceMgr.<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>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>()).isValid()) {</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment">// Notify SourceManager to record the number of FileIDs that were created</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment">// during lexing of the #include'd file.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keywordtype">unsigned</span> NumFIDs =</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a6ce8e7c14e399ddc5efa3d0d19b541f1" title="Get the number of local SLocEntries we have.">local_sloc_entry_size</a>() -</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#ab16c7adb9c9fb156bd32c23b3706c291" title="Number of SLocEntries before lexing the file.">getInitialNumSLocEntries</a>() + 1<span class="comment">/*#include'd file*/</span>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ad901cb130fd9e3c6c2d811fed253c289" title="Set the number of FileIDs (files and macros) that were created during preprocessing of FID...">setNumCreatedFIDsForFileID</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>(), NumFIDs);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> }</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</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> ExitedFID;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">if</span> (Callbacks && !isEndOfMacro && CurPPLexer)</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> ExitedFID = CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>();</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> <span class="comment">// We're done with the #included file.</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <a class="code" href="classclang_1_1Preprocessor.html#ad01e74ced3ad54db449f6c509cab3cf2">RemoveTopOfLexerStack</a>();</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment">// Propagate info about start-of-line/leading white-space/etc.</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> PropagateLineStartLeadingSpaceInfo(Result);</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// Notify the client, if desired, that we are in a new source file.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keywordflow">if</span> (Callbacks && !isEndOfMacro && CurPPLexer) {</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> FileType =</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a0a6faf535b8f3f23e64be0cb4eac99c3" title="Return the file characteristic of the specified source location, indicating whether this is a normal ...">getFileCharacteristic</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>());</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a78301b4ade3244c79b9731a58f115934" title="Callback invoked whenever a source file is entered or exited.">FileChanged</a>(CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>(),</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464ea7da6c0bdb4ba52515ca45964da83e7ea">PPCallbacks::ExitFile</a>, FileType, ExitedFID);</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">// Client should lex another token.</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> }</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="comment">// If the file ends with a newline, form the EOF token on the newline itself,</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="comment">// rather than "on the line following it", which doesn't exist. This makes</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="comment">// diagnostics relating to the end of file include the last file that the user</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="comment">// actually typed, which is goodness.</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">if</span> (CurLexer) {</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *EndPos = CurLexer->BufferEnd;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keywordflow">if</span> (EndPos != CurLexer->BufferStart &&</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> (EndPos[-1] == <span class="charliteral">'\n'</span> || EndPos[-1] == <span class="charliteral">'\r'</span>)) {</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> --EndPos;</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> <span class="comment">// Handle \n\r and \r\n:</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keywordflow">if</span> (EndPos != CurLexer->BufferStart &&</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> (EndPos[-1] == <span class="charliteral">'\n'</span> || EndPos[-1] == <span class="charliteral">'\r'</span>) &&</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> EndPos[-1] != EndPos[0])</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> --EndPos;</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> </div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> Result.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> CurLexer->BufferPtr = EndPos;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> CurLexer->FormTokenWithChars(Result, EndPos, <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>);</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a3d125fddd1ffa39b83b9e880dcd758ac" title="Determine if we are performing code completion.">isCodeCompletionEnabled</a>()) {</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="comment">// Inserting the code-completion point increases the source buffer by 1,</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="comment">// but the main FileID was created before inserting the point.</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="comment">// Compensate by reducing the EOF location by 1, otherwise the location</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="comment">// will point to the next FileID.</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="comment">// FIXME: This is hacky, the code-completion point should probably be</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="comment">// inserted before the main FileID is created.</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="keywordflow">if</span> (CurLexer->getFileLoc() == CodeCompletionFileLoc)</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> Result.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(Result.<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#a1abf1cac74e512604b1f2c8921a446fa" title="Return a source location with the specified offset from this SourceLocation.">getLocWithOffset</a>(-1));</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> }</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Preprocessor.html#ad1166e9766b8fac3cfd7d97826260c5d" title="Returns true if incremental processing is enabled.">isIncrementalProcessingEnabled</a>())</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="comment">// We're done with lexing.</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> CurLexer.reset();</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> assert(CurPTHLexer && <span class="stringliteral">"Got EOF but no current lexer set!"</span>);</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> CurPTHLexer->getEOF(Result);</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> CurPTHLexer.reset();</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> </div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Preprocessor.html#ad1166e9766b8fac3cfd7d97826260c5d" title="Returns true if incremental processing is enabled.">isIncrementalProcessingEnabled</a>())</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> CurPPLexer = 0;</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> <span class="comment">// This is the end of the top-level file. 'WarnUnusedMacroLocs' has collected</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// all macro locations that we need to warn because they are not used.</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keywordflow">for</span> (WarnUnusedMacroLocsTy::iterator</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> I=WarnUnusedMacroLocs.begin(), E=WarnUnusedMacroLocs.end(); I!=E; ++I)</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(*I, diag::pp_macro_not_used);</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">// If we are building a module that has an umbrella header, make sure that</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment">// each of the headers within the directory covered by the umbrella header</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="comment">// was actually included by the umbrella header.</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</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_1Preprocessor.html#a8a8fc5c309076e8a00fa873fd7d001ee" title="Retrieves the module that we're currently building, if any.">getCurrentModule</a>()) {</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keywordflow">if</span> (Mod->getUmbrellaHeader()) {</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</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> StartLoc</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e" title="Return the source location corresponding to the first byte of the specified file.">getLocForStartOfFile</a>(SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ad3ac47ab7380c82d19243a2db765479c" title="Returns the FileID of the main source file.">getMainFileID</a>());</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a663f9d8c8151906a9bf39954f3d15c60">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> diag::warn_uncovered_module_header, </div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> StartLoc) != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>) {</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> &ModMap = <a class="code" href="classclang_1_1Preprocessor.html#a9dc8733c4a182dee512c14dbdcfe046e">getHeaderSearchInfo</a>().<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>();</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keyword">typedef</span> llvm::sys::fs::recursive_directory_iterator</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> recursive_directory_iterator;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</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 = Mod->getUmbrellaDir();</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> llvm::error_code EC;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keywordflow">for</span> (recursive_directory_iterator Entry(Dir-><a class="code" href="classclang_1_1DirectoryEntry.html#a15bbfeeaf1752e5ead2684c445ad81f4">getName</a>(), EC), End;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> Entry != End && !EC; Entry.increment(EC)) {</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keyword">using</span> llvm::StringSwitch;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="comment">// Check whether this entry has an extension typically associated with</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="comment">// headers.</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keywordflow">if</span> (!StringSwitch<bool>(llvm::sys::path::extension(Entry->path()))</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> .Cases(<span class="stringliteral">".h"</span>, <span class="stringliteral">".H"</span>, <span class="stringliteral">".hh"</span>, <span class="stringliteral">".hpp"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> .Default(<span class="keyword">false</span>))</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keywordflow">if</span> (<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 = <a class="code" href="classclang_1_1Preprocessor.html#a07eb04f847b5976cec8b174764b99424">getFileManager</a>().<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(Entry->path()))</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#aae25affd3cdadf3cc5b3b6c1f75a640c">hasFileInfo</a>(Header)) {</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="keywordflow">if</span> (!ModMap.<a class="code" href="classclang_1_1ModuleMap.html#af4fbca415ce7cbde70d1fc96d9285d10" title="Determine whether the given header is part of a module marked 'unavailable'.">isHeaderInUnavailableModule</a>(Header)) {</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment">// Find the relative path that would access this header.</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> RelativePath;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <a class="code" href="PPLexerChange_8cpp.html#ae4add89c0dbc605373edeb72189b9fc2" title="Compute the relative path that names the given file relative to the given directory.">computeRelativePath</a>(FileMgr, Dir, Header, RelativePath); </div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StartLoc, diag::warn_uncovered_module_header)</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> << Mod->getFullModuleName() << RelativePath;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> }</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> }</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> }</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> </div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment">// Check whether there are any headers that were included, but not</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">// mentioned at all in the module map. Such headers </span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</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> StartLoc</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e" title="Return the source location corresponding to the first byte of the specified file.">getLocForStartOfFile</a>(SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#ad3ac47ab7380c82d19243a2db765479c" title="Returns the FileID of the main source file.">getMainFileID</a>());</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Preprocessor.html#a663f9d8c8151906a9bf39954f3d15c60">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_forgotten_module_header,</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> StartLoc)</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>) {</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <a class="code" href="classclang_1_1ModuleMap.html">ModuleMap</a> &ModMap = <a class="code" href="classclang_1_1Preprocessor.html#a9dc8733c4a182dee512c14dbdcfe046e">getHeaderSearchInfo</a>().<a class="code" href="classclang_1_1HeaderSearch.html#ae56afbc5eac06aa39ed7c49a5d6dd717" title="Retrieve the module map.">getModuleMap</a>();</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a6ce8e7c14e399ddc5efa3d0d19b541f1" title="Get the number of local SLocEntries we have.">local_sloc_entry_size</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="comment">// We only care about file entries.</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a06bd6d8f9ae3d855d407c226b5ddb8bb" title="Get a local SLocEntry. This is exposed for indexing.">getLocalSLocEntry</a>(I);</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keywordflow">if</span> (!Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>())</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="comment">// Dig out the actual file.</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</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 = Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>().<a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a0dfcfbd07292c9ab7f537f2dd38d14c4">getContentCache</a>()-><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71" title="Reference to the file entry representing this ContentCache.">OrigEntry</a>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">if</span> (!File)</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="comment">// If it's not part of a module and not unknown, complain.</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="keywordflow">if</span> (!ModMap.<a class="code" href="classclang_1_1ModuleMap.html#a127dbf10d2e3134aedb7d7c60cf23cc9" title="Retrieve the module that owns the given header file, if any.">findModuleForHeader</a>(File) &&</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> !ModMap.<a class="code" href="classclang_1_1ModuleMap.html#af4fbca415ce7cbde70d1fc96d9285d10" title="Determine whether the given header is part of a module marked 'unavailable'.">isHeaderInUnavailableModule</a>(File)) {</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StartLoc, diag::warn_forgotten_module_header)</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> << File-><a class="code" href="classclang_1_1FileEntry.html#a94ddac74f217c35e19420dd6c419e25f">getName</a>() << Mod->getFullModuleName();</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> }</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> }</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> }</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> }</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="comment"></span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="comment">/// HandleEndOfTokenLexer - This callback is invoked when the current TokenLexer</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="comment">/// hits the end of its token stream.</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a40e565e7656cd4a00cf4c5ae69e975dd"> 489</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Preprocessor.html#a40e565e7656cd4a00cf4c5ae69e975dd">Preprocessor::HandleEndOfTokenLexer</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Result) {</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> assert(CurTokenLexer && !CurPPLexer &&</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="stringliteral">"Ending a macro when currently in a #include file!"</span>);</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="keywordflow">if</span> (!MacroExpandingLexersStack.empty() &&</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> MacroExpandingLexersStack.back().first == CurTokenLexer.get())</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> removeCachedMacroExpandedTokensOfLastLexer();</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="comment">// Delete or cache the now-dead macro expander.</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="keywordflow">if</span> (NumCachedTokenLexers == TokenLexerCacheSize)</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> CurTokenLexer.reset();</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> TokenLexerCache[NumCachedTokenLexers++] = CurTokenLexer.take();</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="comment">// Handle this like a #include file being popped off the stack.</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#ade4c21cb35a1ae0db438638e585810c1">HandleEndOfFile</a>(Result, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> }</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment"></span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="comment">/// RemoveTopOfLexerStack - Pop the current lexer/macro exp off the top of the</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="comment">/// lexer stack. This should only be used in situations where the current</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="comment">/// state of the top-of-stack lexer is unknown.</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#ad01e74ced3ad54db449f6c509cab3cf2"> 510</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#ad01e74ced3ad54db449f6c509cab3cf2">Preprocessor::RemoveTopOfLexerStack</a>() {</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> assert(!IncludeMacroStack.empty() && <span class="stringliteral">"Ran out of stack entries to load"</span>);</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> <span class="keywordflow">if</span> (CurTokenLexer) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="comment">// Delete or cache the now-dead macro expander.</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">if</span> (NumCachedTokenLexers == TokenLexerCacheSize)</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> CurTokenLexer.reset();</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> TokenLexerCache[NumCachedTokenLexers++] = CurTokenLexer.take();</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> }</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> </div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> PopIncludeMacroStack();</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> }</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="comment"></span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="comment">/// HandleMicrosoftCommentPaste - When the macro expander pastes together a</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="comment">/// comment (/##/) in microsoft mode, this method handles updating the current</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="comment">/// state, returning the token on the next source line.</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#afe79c2fa0e37c527956f03b444ec302a"> 527</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#afe79c2fa0e37c527956f03b444ec302a">Preprocessor::HandleMicrosoftCommentPaste</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> assert(CurTokenLexer && !CurPPLexer &&</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="stringliteral">"Pasted comment can only be formed from macro"</span>);</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="comment">// We handle this by scanning for the closest real lexer, switching it to</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="comment">// raw mode and preprocessor mode. This will cause it to return \n as an</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="comment">// explicit EOD token.</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a> *FoundLexer = 0;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="keywordtype">bool</span> LexerWasInPPMode = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = IncludeMacroStack.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> IncludeStackInfo &ISI = *(IncludeMacroStack.end()-i-1);</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="keywordflow">if</span> (ISI.ThePPLexer == 0) <span class="keywordflow">continue</span>; <span class="comment">// Scan for a real lexer.</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="comment">// Once we find a real lexer, mark it as raw mode (disabling macro</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="comment">// expansions) and preprocessor mode (return EOD). We know that the lexer</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="comment">// was *not* in raw mode before, because the macro that the comment came</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="comment">// from was expanded. However, it could have already been in preprocessor</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="comment">// mode (#if COMMENT) in which case we have to return it to that mode and</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment">// return EOD.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> FoundLexer = ISI.ThePPLexer;</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> FoundLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> LexerWasInPPMode = FoundLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a>;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> FoundLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> }</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="comment">// Okay, we either found and switched over the lexer, or we didn't find a</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="comment">// lexer. In either case, finish off the macro the comment came from, getting</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="comment">// the next token.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Preprocessor.html#a40e565e7656cd4a00cf4c5ae69e975dd">HandleEndOfTokenLexer</a>(Tok)) <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(Tok);</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="comment">// Discarding comments as long as we don't have EOF or EOD. This 'comments</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="comment">// out' the rest of the line, including any tokens that came from other macros</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="comment">// that were active, as in:</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="comment">// #define submacro a COMMENT b</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="comment">// submacro c</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="comment">// which should lex to 'a' only: 'b' and 'c' should be removed.</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod) && Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>))</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(Tok);</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">// If we got an eod token, then we successfully found the end of the line.</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) {</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> assert(FoundLexer && <span class="stringliteral">"Can't get end of line without an active lexer"</span>);</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="comment">// Restore the lexer back to normal mode instead of raw mode.</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> FoundLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="comment">// If the lexer was already in preprocessor mode, just return the EOD token</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="comment">// to finish the preprocessor line.</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">if</span> (LexerWasInPPMode) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="comment">// Otherwise, switch out of PP mode and return the next lexed token.</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> FoundLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(Tok);</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> }</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="comment">// If we got an EOF token, then we reached the end of the token stream but</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="comment">// didn't find an explicit \n. This can only happen if there was no lexer</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="comment">// active (an active lexer would return EOD at EOF if there was no \n in</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="comment">// preprocessor directive mode), so just return EOF as our token.</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> assert(!FoundLexer && <span class="stringliteral">"Lexer should return EOD before EOF in PP mode"</span>);</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:52 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/PPLexerChange_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPLexerChange_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPLexerChange_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPLexerChange_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: PPLexerChange.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">PPLexerChange.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPLexerChange_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/PPLexerChange.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/PPLexerChange.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> PPLexerChange.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>/Preprocessor.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/Builtins.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/LLVM.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def \</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/Diagnostic.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/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/ADT/StringRef.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</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="l00020"></a><span class="lineno"> 20</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="l00021"></a><span class="lineno"> 21</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="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</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="l00032"></a><span class="lineno"> 32</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="l00033"></a><span class="lineno"> 33</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="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/tools/clang/lib/<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="l00039"></a><span class="lineno"> 39</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="l00040"></a><span class="lineno"> 40</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="l00041"></a><span class="lineno"> 41</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="l00042"></a><span class="lineno"> 42</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="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</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="l00048"></a><span class="lineno"> 48</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="l00049"></a><span class="lineno"> 49</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="l00050"></a><span class="lineno"> 50</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="l00051"></a><span class="lineno"> 51</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="l00052"></a><span class="lineno"> 52</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="l00053"></a><span class="lineno"> 53</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="l00054"></a><span class="lineno"> 54</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="l00055"></a><span class="lineno"> 55</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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/Module.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/SourceManager.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/FileManager.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</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="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/include/llvm-c/Core.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>/PPCallbacks.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>/DirectoryLookup.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</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>/HeaderSearch.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</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="l00085"></a><span class="lineno"> 85</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="l00086"></a><span class="lineno"> 86</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> /home/tstellar/llvm/include/llvm/Support/Path.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>/Preprocessor.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/Builtins.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/LLVM.h:</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> /home/tstellar/llvm/include/llvm/Support/type_traits.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/DataTypes.h:</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def:</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/Diagnostic.h:</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> /home/tstellar/llvm/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/ADT/StringRef.h:</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.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/include/llvm/ADT/ArrayRef.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/SmallVector.h:</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.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/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.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/StringMap.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/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> /home/tstellar/llvm/tools/clang/lib/<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="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> /home/tstellar/llvm/tools/clang/lib/<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="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> /home/tstellar/llvm/tools/clang/lib/<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="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> /home/tstellar/llvm/tools/clang/lib/<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="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> /home/tstellar/llvm/tools/clang/lib/<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="l00188"></a><span class="lineno"> 188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> /home/tstellar/llvm/tools/clang/lib/<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="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/Module.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/SourceManager.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/FileManager.h:</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> /home/tstellar/llvm/include/llvm-c/Core.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>/PPCallbacks.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>/DirectoryLookup.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> /home/tstellar/llvm/tools/clang/lib/<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="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/StringSet.h:</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> /home/tstellar/llvm/tools/clang/lib/<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="l00250"></a><span class="lineno"> 250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc:</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.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/Path.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:52 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