[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/ParseTemplate_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTemplate_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTemplate_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTemplate_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,577 @@
+<!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: ParseTemplate.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_58f62bc003e869f0dc8400deafe0ffa1.html">Parse</a></li><li class="navelem"><a class="el" href="dir_0aeab4227b111c06862263ff09b555c2.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ParseTemplate.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ParseTemplate_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/Parse/Release+Asserts/ParseTemplate.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Parse/Release+Asserts/ParseTemplate.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  ParseTemplate.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Parse/Parser.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OperatorPrecedence.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/CodeCompletionHandler.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../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="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/include/llvm/Support/SMLoc.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h \
+ RAIIObjectsForParser.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Parse/ParseDiagnostic.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticParseKinds.inc \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/DelayedDiagnostic.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTConsumer.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclTemplate.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ParsedTemplate.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Scope.h</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Parse/Parser.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenMPKinds.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/StringRef.h:</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.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/Parse/../../include/clang/Basic/OpenMPKinds.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/Parse/../../include/clang/Basic/OperatorPrecedence.h:</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TokenKinds.def:</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/Parse/../../include/clang/Basic/Specifiers.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/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/CodeCompletionHandler.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/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.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/Parse/../../include/clang/Basic/Builtins.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/Parse/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> /home/tstellar/llvm/include/llvm/Support/Casting.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/None.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticIDs.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/IntrusiveRefCntPtr.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/Support/Compiler.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.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/Parse/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/Parse/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/SourceLocation.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/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.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/AlignOf.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/Support/MathExtras.h:</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.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/include/llvm/ADT/DenseMapInfo.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/Parse/../../include/clang/Basic/IdentifierTable.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/Parse/../../include/clang/Basic/OperatorKinds.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/Parse/../../include/clang/Basic/OperatorKinds.def:</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/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.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/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.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/Parse/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../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="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../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="l00270"></a><span class="lineno">  270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h:</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h:</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../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="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TemplateKinds.h:</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h:</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h:</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h:</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/DeclSpec.h:</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AttributeList.h:</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Ownership.h:</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AttrParsedAttrList.inc:</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Sema.h:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> </div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> </div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h:</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/MangleNumberingContext.h:</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/NSAPI.h:</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AnalysisBasedWarnings.h:</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ExternalSemaSource.h:</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/TypoCorrection.h:</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Weak.h:</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h:</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/IdentifierResolver.h:</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/LocInfoType.h:</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ObjCMethodList.h:</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ScopeInfo.h:</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h:</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h:</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> </div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h:</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> /home/tstellar/llvm/include/llvm/Support/SMLoc.h:</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h:</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> RAIIObjectsForParser.h:</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Parse/ParseDiagnostic.h:</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> </div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticParseKinds.inc:</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/DelayedDiagnostic.h:</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTConsumer.h:</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclTemplate.h:</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ParsedTemplate.h:</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Scope.h:</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> </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/ParseTentative_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTentative_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTentative_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTentative_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1916 @@
+<!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: ParseTentative.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_58f62bc003e869f0dc8400deafe0ffa1.html">Parse</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ParseTentative.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ParseTentative_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">//===--- ParseTentative.cpp - Ambiguity Resolution Parsing ----------------===//</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 tentative parsing portions of the Parser</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  interfaces, for ambiguity resolution.</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="Parse_2Parser_8h.html">clang/Parse/Parser.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="ParseDiagnostic_8h.html">clang/Parse/ParseDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="ParsedTemplate_8h.html">clang/Sema/ParsedTemplate.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="comment"></span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment">/// isCXXDeclarationStatement - C++-specialized function that disambiguates</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">/// between a declaration or an expression statement, when parsing function</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment">/// bodies. Returns true for declaration, false for expression.</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">///         declaration-statement:</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">///           block-declaration</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">///         block-declaration:</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">///           simple-declaration</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">///           asm-definition</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">///           namespace-alias-definition</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">///           using-declaration</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">///           using-directive</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">/// [C++0x]   static_assert-declaration</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">///         asm-definition:</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">///           'asm' '(' string-literal ')' ';'</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">///         namespace-alias-definition:</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">///           'namespace' identifier = qualified-namespace-specifier ';'</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">///         using-declaration:</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">///           'using' typename[opt] '::'[opt] nested-name-specifier</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">///                 unqualified-id ';'</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">///           'using' '::' unqualified-id ;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">///         using-directive:</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">///           'using' 'namespace' '::'[opt] nested-name-specifier[opt]</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">///                 namespace-name ';'</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment"></span><span class="keywordtype">bool</span> Parser::isCXXDeclarationStatement() {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="comment">// asm-definition</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="keywordflow">case</span> tok::kw_asm:</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     <span class="comment">// namespace-alias-definition</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>   <span class="keywordflow">case</span> tok::kw_namespace:</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     <span class="comment">// using-declaration</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>     <span class="comment">// using-directive</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   <span class="keywordflow">case</span> tok::kw_using:</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>     <span class="comment">// static_assert-declaration</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   <span class="keywordflow">case</span> tok::kw_static_assert:</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   <span class="keywordflow">case</span> tok::kw__Static_assert:</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>     <span class="comment">// simple-declaration</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>     <span class="keywordflow">return</span> isCXXSimpleDeclaration(<span class="comment">/*AllowForRangeDecl=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   }</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</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">/// isCXXSimpleDeclaration - C++-specialized function that disambiguates</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">/// between a simple-declaration or an expression-statement.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">/// If during the disambiguation process a parsing error is encountered,</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">/// the function returns true to let the declaration parsing code handle it.</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">/// Returns false if the statement is disambiguated as expression.</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">/// simple-declaration:</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">///   decl-specifier-seq init-declarator-list[opt] ';'</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">/// (if AllowForRangeDecl specified)</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">/// for ( for-range-declaration : for-range-initializer ) statement</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">/// for-range-declaration: </span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">///    attribute-specifier-seqopt type-specifier-seq declarator</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment"></span><span class="keywordtype">bool</span> Parser::isCXXSimpleDeclaration(<span class="keywordtype">bool</span> AllowForRangeDecl) {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   <span class="comment">// C++ 6.8p1:</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   <span class="comment">// There is an ambiguity in the grammar involving expression-statements and</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   <span class="comment">// declarations: An expression-statement with a function-style explicit type</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <span class="comment">// conversion (5.2.3) as its leftmost subexpression can be indistinguishable</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>   <span class="comment">// from a declaration where the first declarator starts with a '('. In those</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>   <span class="comment">// cases the statement is a declaration. [Note: To disambiguate, the whole</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>   <span class="comment">// statement might have to be examined to determine if it is an</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   <span class="comment">// expression-statement or a declaration].</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>   <span class="comment">// C++ 6.8p3:</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   <span class="comment">// The disambiguation is purely syntactic; that is, the meaning of the names</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="comment">// occurring in such a statement, beyond whether they are type-names or not,</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <span class="comment">// is not generally used in or changed by the disambiguation. Class</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   <span class="comment">// templates are instantiated as necessary to determine if a qualified name</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   <span class="comment">// is a type-name. Disambiguation precedes parsing, and a statement</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   <span class="comment">// disambiguated as a declaration may be an ill-formed declaration.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>   <span class="comment">// We don't have to parse all of the decl-specifier-seq part. There's only</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   <span class="comment">// an ambiguity if the first decl-specifier is</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <span class="comment">// simple-type-specifier/typename-specifier followed by a '(', which may</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   <span class="comment">// indicate a function-style cast expression.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>   <span class="comment">// isCXXDeclarationSpecifier will return TPResult::Ambiguous() only in such</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <span class="comment">// a case.</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="keywordtype">bool</span> InvalidAsDeclaration = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   TPResult TPR = isCXXDeclarationSpecifier(TPResult::False(),</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>                                            &InvalidAsDeclaration);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>     <span class="keywordflow">return</span> TPR != TPResult::False(); <span class="comment">// Returns true for TPResult::True() or</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>                                      <span class="comment">// TPResult::Error().</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   <span class="comment">// FIXME: TryParseSimpleDeclaration doesn't look past the first initializer,</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   <span class="comment">// and so gets some cases wrong. We can't carry on if we've already seen</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   <span class="comment">// something which makes this statement invalid as a declaration in this case,</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="comment">// since it can cause us to misparse valid code. Revisit this once</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <span class="comment">// TryParseInitDeclaratorList is fixed.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   <span class="keywordflow">if</span> (InvalidAsDeclaration)</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   <span class="comment">// FIXME: Add statistics about the number of ambiguous statements encountered</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="comment">// and how they were resolved (number of declarations+number of expressions).</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   <span class="comment">// Ok, we have a simple-type-specifier/typename-specifier followed by a '(',</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>   <span class="comment">// or an identifier which doesn't resolve as anything. We need tentative</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>   <span class="comment">// parsing...</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   TentativeParsingAction PA(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   TPR = TryParseSimpleDeclaration(AllowForRangeDecl);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   PA.Revert();</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>   <span class="comment">// In case of an error, let the declaration parsing code handle it.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   <span class="keywordflow">if</span> (TPR == TPResult::Error())</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">// Declarations take precedence over expressions.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   <span class="keywordflow">if</span> (TPR == TPResult::Ambiguous())</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>     TPR = TPResult::True();</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>   assert(TPR == TPResult::True() || TPR == TPResult::False());</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <span class="keywordflow">return</span> TPR == TPResult::True();</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> <span class="comment"></span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">/// Try to consume a token sequence that we've already identified as</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">/// (potentially) starting a decl-specifier.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment"></span>Parser::TPResult Parser::TryConsumeDeclarationSpecifier() {</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   <span class="keywordflow">case</span> tok::kw__Atomic:</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>     }</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     <span class="comment">// Fall through.</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   <span class="keywordflow">case</span> tok::kw_typeof:</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <span class="keywordflow">case</span> tok::kw___attribute:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>   <span class="keywordflow">case</span> tok::kw___underlying_type: {</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_paren))</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>     ConsumeParen();</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren))</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>   }</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   <span class="keywordflow">case</span> tok::kw_class:</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="keywordflow">case</span> tok::kw_struct:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   <span class="keywordflow">case</span> tok::kw_union:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>   <span class="keywordflow">case</span> tok::kw___interface:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   <span class="keywordflow">case</span> tok::kw_enum:</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     <span class="comment">// elaborated-type-specifier:</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>     <span class="comment">//     class-key attribute-specifier-seq[opt]</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     <span class="comment">//         nested-name-specifier[opt] identifier</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     <span class="comment">//     class-key nested-name-specifier[opt] template[opt] simple-template-id</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     <span class="comment">//     enum nested-name-specifier[opt] identifier</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>     <span class="comment">// FIXME: We don't support class-specifiers nor enum-specifiers here.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</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">// Skip attributes.</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_square) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___attribute) ||</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>            Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___declspec) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_alignas)) {</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_square)) {</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>         ConsumeBracket();</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>         <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_square))</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>           <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>         <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>         <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_paren))</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>           <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>         ConsumeParen();</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>         <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren))</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>           <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>       }</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>     }</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#af6d88d3c2f1c4b03b72d93bde3f719b0">TryAnnotateCXXScopeToken</a>())</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope))</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::identifier) && Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::annot_template_id))</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   <span class="keywordflow">case</span> tok::annot_cxxscope:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>     <span class="comment">// Fall through.</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().ObjC1 && Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::less))</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>       <span class="keywordflow">return</span> TryParseProtocolQualifiers();</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   }</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   <span class="keywordflow">return</span> TPResult::Ambiguous();</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> <span class="comment"></span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">/// simple-declaration:</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">///   decl-specifier-seq init-declarator-list[opt] ';'</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">/// (if AllowForRangeDecl specified)</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">/// for ( for-range-declaration : for-range-initializer ) statement</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">/// for-range-declaration: </span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">///    attribute-specifier-seqopt type-specifier-seq declarator</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment"></span>Parser::TPResult Parser::TryParseSimpleDeclaration(<span class="keywordtype">bool</span> AllowForRangeDecl) {</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   <span class="keywordflow">if</span> (TryConsumeDeclarationSpecifier() == TPResult::Error())</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>     <span class="keywordflow">return</span> TPResult::Error();</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>   <span class="comment">// Two decl-specifiers in a row conclusively disambiguate this as being a</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   <span class="comment">// simple-declaration. Don't bother calling isCXXDeclarationSpecifier in the</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   <span class="comment">// overwhelmingly common case that the next token is a '('.</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>     TPResult TPR = isCXXDeclarationSpecifier();</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>     <span class="keywordflow">if</span> (TPR == TPResult::Ambiguous())</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>     <span class="keywordflow">if</span> (TPR == TPResult::True() || TPR == TPResult::Error())</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>       <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>     assert(TPR == TPResult::False());</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>   TPResult TPR = TryParseInitDeclaratorList();</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::semi) && (!AllowForRangeDecl || Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::colon)))</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>     <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>   <span class="keywordflow">return</span> TPResult::Ambiguous();</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"></span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment">/// Tentatively parse an init-declarator-list in order to disambiguate it from</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">/// an expression.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">///       init-declarator-list:</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">///         init-declarator</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">///         init-declarator-list ',' init-declarator</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">///       init-declarator:</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">///         declarator initializer[opt]</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">/// [GNU]   declarator simple-asm-expr[opt] attributes[opt] initializer[opt]</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">///       initializer:</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">///         brace-or-equal-initializer</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">///         '(' expression-list ')'</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">///       brace-or-equal-initializer:</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">///         '=' initializer-clause</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">/// [C++11] braced-init-list</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">///       initializer-clause:</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">///         assignment-expression</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">///         braced-init-list</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">///       braced-init-list:</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">///         '{' initializer-list ','[opt] '}'</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">///         '{' '}'</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment"></span>Parser::TPResult Parser::TryParseInitDeclaratorList() {</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     <span class="comment">// declarator</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>     TPResult TPR = TryParseDeclarator(<span class="keyword">false</span><span class="comment">/*mayBeAbstract*/</span>);</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>     <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>       <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>     <span class="comment">// [GNU] simple-asm-expr[opt] attributes[opt]</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_asm) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___attribute))</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>       <span class="keywordflow">return</span> TPResult::True();</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>     <span class="comment">// initializer[opt]</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>       <span class="comment">// Parse through the parens.</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>       ConsumeParen();</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>       <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>))</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_brace)) {</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>       <span class="comment">// A left-brace here is sufficient to disambiguate the parse; an</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>       <span class="comment">// expression can never be followed directly by a braced-init-list.</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal) || isTokIdentifier_in()) {</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>       <span class="comment">// MSVC and g++ won't examine the rest of declarators if '=' is</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>       <span class="comment">// encountered; they just conclude that we have a declaration.</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>       <span class="comment">// EDG parses the initializer completely, which is the proper behavior</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>       <span class="comment">// for this case.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>       <span class="comment">//</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>       <span class="comment">// At present, Clang follows MSVC and g++, since the parser does not have</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>       <span class="comment">// the ability to parse an expression fully without recording the</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>       <span class="comment">// results of that parse.</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>       <span class="comment">// FIXME: Handle this case correctly.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>       <span class="comment">//</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>       <span class="comment">// Also allow 'in' after an Objective-C declaration as in:</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>       <span class="comment">// for (int (^b)(void) in array). Ideally this should be done in the</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>       <span class="comment">// context of parsing for-init-statement of a foreach statement only. But,</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>       <span class="comment">// in any other context 'in' is invalid after a declaration and parser</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>       <span class="comment">// issues the error regardless of outcome of this decision.</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>       <span class="comment">// FIXME: Change if above assumption does not hold.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>       <span class="keywordflow">return</span> TPResult::True();</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="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::comma))</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>(); <span class="comment">// the comma.</span></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>   <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> }</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment"></span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">/// isCXXConditionDeclaration - Disambiguates between a declaration or an</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment">/// expression for a condition of a if/switch/while/for statement.</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment">/// If during the disambiguation process a parsing error is encountered,</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">/// the function returns true to let the declaration parsing code handle it.</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment">///       condition:</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">///         expression</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">///         type-specifier-seq declarator '=' assignment-expression</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment">/// [C++11] type-specifier-seq declarator '=' initializer-clause</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">/// [C++11] type-specifier-seq declarator braced-init-list</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">/// [GNU]   type-specifier-seq declarator simple-asm-expr[opt] attributes[opt]</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">///             '=' assignment-expression</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment"></span><span class="keywordtype">bool</span> Parser::isCXXConditionDeclaration() {</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>   TPResult TPR = isCXXDeclarationSpecifier();</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>   <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>     <span class="keywordflow">return</span> TPR != TPResult::False(); <span class="comment">// Returns true for TPResult::True() or</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>                                      <span class="comment">// TPResult::Error().</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>   <span class="comment">// FIXME: Add statistics about the number of ambiguous statements encountered</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>   <span class="comment">// and how they were resolved (number of declarations+number of expressions).</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>   <span class="comment">// Ok, we have a simple-type-specifier/typename-specifier followed by a '('.</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>   <span class="comment">// We need tentative parsing...</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>   TentativeParsingAction PA(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>   <span class="comment">// type-specifier-seq</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>   TryConsumeDeclarationSpecifier();</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren) && <span class="stringliteral">"Expected '('"</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="comment">// declarator</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>   TPR = TryParseDeclarator(<span class="keyword">false</span><span class="comment">/*mayBeAbstract*/</span>);</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>   <span class="comment">// In case of an error, let the declaration parsing code handle it.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>   <span class="keywordflow">if</span> (TPR == TPResult::Error())</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>     TPR = TPResult::True();</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>   <span class="keywordflow">if</span> (TPR == TPResult::Ambiguous()) {</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>     <span class="comment">// '='</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>     <span class="comment">// [GNU] simple-asm-expr[opt] attributes[opt]</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal)  ||</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>         Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_asm) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___attribute))</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>       TPR = TPResult::True();</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().CPlusPlus11 && Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_brace))</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>       TPR = TPResult::True();</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>       TPR = TPResult::False();</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>   PA.Revert();</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>   assert(TPR == TPResult::True() || TPR == TPResult::False());</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>   <span class="keywordflow">return</span> TPR == TPResult::True();</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"></span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">  /// \brief Determine whether the next set of tokens contains a type-id.</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">  /// The context parameter states what context we're parsing right</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">  /// now, which affects how this routine copes with the token</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">  /// following the type-id. If the context is TypeIdInParens, we have</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">  /// already parsed the '(' and we will cease lookahead when we hit</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">  /// the corresponding ')'. If the context is</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment">  /// TypeIdAsTemplateArgument, we've already parsed the '<' or ','</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="comment">  /// before this template argument, and will cease lookahead when we</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="comment">  /// hit a '>', '>>' (in C++0x), or ','. Returns true for a type-id</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> <span class="comment">  /// and false for an expression.  If during the disambiguation</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment">  /// process a parsing error is encountered, the function returns</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">  /// true to let the declaration parsing code handle it.</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">  /// type-id:</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">  ///   type-specifier-seq abstract-declarator[opt]</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment"></span><span class="keywordtype">bool</span> Parser::isCXXTypeId(TentativeCXXTypeIdContext <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, <span class="keywordtype">bool</span> &isAmbiguous) {</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>   isAmbiguous = <span class="keyword">false</span>;</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">// C++ 8.2p2:</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>   <span class="comment">// The ambiguity arising from the similarity between a function-style cast and</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>   <span class="comment">// a type-id can occur in different contexts. The ambiguity appears as a</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   <span class="comment">// choice between a function-style cast expression and a declaration of a</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>   <span class="comment">// type. The resolution is that any construct that could possibly be a type-id</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>   <span class="comment">// in its syntactic context shall be considered a type-id.</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>   TPResult TPR = isCXXDeclarationSpecifier();</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>   <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>     <span class="keywordflow">return</span> TPR != TPResult::False(); <span class="comment">// Returns true for TPResult::True() or</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>                                      <span class="comment">// TPResult::Error().</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   <span class="comment">// FIXME: Add statistics about the number of ambiguous statements encountered</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>   <span class="comment">// and how they were resolved (number of declarations+number of expressions).</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="comment">// Ok, we have a simple-type-specifier/typename-specifier followed by a '('.</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>   <span class="comment">// We need tentative parsing...</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> </div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>   TentativeParsingAction PA(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>   <span class="comment">// type-specifier-seq</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>   TryConsumeDeclarationSpecifier();</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren) && <span class="stringliteral">"Expected '('"</span>);</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> </div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>   <span class="comment">// declarator</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>   TPR = TryParseDeclarator(<span class="keyword">true</span><span class="comment">/*mayBeAbstract*/</span>, <span class="keyword">false</span><span class="comment">/*mayHaveIdentifier*/</span>);</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>   <span class="comment">// In case of an error, let the declaration parsing code handle it.</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   <span class="keywordflow">if</span> (TPR == TPResult::Error())</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>     TPR = TPResult::True();</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   <span class="keywordflow">if</span> (TPR == TPResult::Ambiguous()) {</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>     <span class="comment">// We are supposed to be inside parens, so if after the abstract declarator</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>     <span class="comment">// we encounter a ')' this is a type-id, otherwise it's an expression.</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>     <span class="keywordflow">if</span> (Context == TypeIdInParens && Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>       TPR = TPResult::True();</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>       isAmbiguous = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>     <span class="comment">// We are supposed to be inside a template argument, so if after</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>     <span class="comment">// the abstract declarator we encounter a '>', '>>' (in C++0x), or</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>     <span class="comment">// ',', this is a type-id. Otherwise, it's an expression.</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Context == TypeIdAsTemplateArgument &&</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>                (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::greater) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma) ||</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>                 (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().CPlusPlus11 && Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::greatergreater)))) {</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>       TPR = TPResult::True();</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>       isAmbiguous = <span class="keyword">true</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="keywordflow">else</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>       TPR = TPResult::False();</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   }</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>   PA.Revert();</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>   assert(TPR == TPResult::True() || TPR == TPResult::False());</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>   <span class="keywordflow">return</span> TPR == TPResult::True();</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> }</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment"></span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> <span class="comment">/// \brief Returns true if this is a C++11 attribute-specifier. Per</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="comment">/// C++11 [dcl.attr.grammar]p6, two consecutive left square bracket tokens</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> <span class="comment">/// always introduce an attribute. In Objective-C++11, this rule does not</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> <span class="comment">/// apply if either '[' begins a message-send.</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="comment">/// If Disambiguate is true, we try harder to determine whether a '[[' starts</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="comment">/// an attribute-specifier, and return CAK_InvalidAttributeSpecifier if not.</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> <span class="comment">/// If OuterMightBeMessageSend is true, we assume the outer '[' is either an</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="comment">/// Obj-C message send or the start of an attribute. Otherwise, we assume it</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> <span class="comment">/// is not an Obj-C message send.</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> <span class="comment">/// C++11 [dcl.attr.grammar]:</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> <span class="comment">///     attribute-specifier:</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment">///         '[' '[' attribute-list ']' ']'</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">///         alignment-specifier</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> <span class="comment">///     attribute-list:</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> <span class="comment">///         attribute[opt]</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> <span class="comment">///         attribute-list ',' attribute[opt]</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment">///         attribute '...'</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> <span class="comment">///         attribute-list ',' attribute '...'</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">///     attribute:</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">///         attribute-token attribute-argument-clause[opt]</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">///     attribute-token:</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">///         identifier</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> <span class="comment">///         identifier '::' identifier</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="comment">///     attribute-argument-clause:</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment">///         '(' balanced-token-seq ')'</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment"></span>Parser::CXX11AttributeKind</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> Parser::isCXX11AttributeSpecifier(<span class="keywordtype">bool</span> Disambiguate,</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>                                   <span class="keywordtype">bool</span> OuterMightBeMessageSend) {</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_alignas))</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>     <span class="keywordflow">return</span> CAK_AttributeSpecifier;</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> </div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_square) || <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_square))</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>     <span class="keywordflow">return</span> CAK_NotAttributeSpecifier;</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>   <span class="comment">// No tentative parsing if we don't need to look for ']]' or a lambda.</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>   <span class="keywordflow">if</span> (!Disambiguate && !<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().ObjC1)</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>     <span class="keywordflow">return</span> CAK_AttributeSpecifier;</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>   TentativeParsingAction PA(*<span class="keyword">this</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="comment">// Opening brackets were checked for above.</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>   ConsumeBracket();</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> </div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>   <span class="comment">// Outside Obj-C++11, treat anything with a matching ']]' as an attribute.</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().ObjC1) {</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>     ConsumeBracket();</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>     <span class="keywordtype">bool</span> IsAttribute = <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_square);</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>     IsAttribute &= Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_square);</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>     PA.Revert();</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> </div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>     <span class="keywordflow">return</span> IsAttribute ? CAK_AttributeSpecifier : CAK_InvalidAttributeSpecifier;</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>   }</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>   <span class="comment">// In Obj-C++11, we need to distinguish four situations:</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>   <span class="comment">//  1a) int x[[attr]];                     C++11 attribute.</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>   <span class="comment">//  1b) [[attr]];                          C++11 statement attribute.</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>   <span class="comment">//   2) int x[[obj](){ return 1; }()];     Lambda in array size/index.</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>   <span class="comment">//  3a) int x[[obj get]];                  Message send in array size/index.</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>   <span class="comment">//  3b) [[Class alloc] init];              Message send in message send.</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>   <span class="comment">//   4) [[obj]{ return self; }() doStuff]; Lambda in message send.</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>   <span class="comment">// (1) is an attribute, (2) is ill-formed, and (3) and (4) are accepted.</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> </div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>   <span class="comment">// If we have a lambda-introducer, then this is definitely not a message send.</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>   <span class="comment">// FIXME: If this disambiguation is too slow, fold the tentative lambda parse</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>   <span class="comment">// into the tentative attribute parse below.</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>   <a class="code" href="structclang_1_1LambdaIntroducer.html" title="Represents a complete lambda introducer.">LambdaIntroducer</a> Intro;</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>   <span class="keywordflow">if</span> (!TryParseLambdaIntroducer(Intro)) {</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>     <span class="comment">// A lambda cannot end with ']]', and an attribute must.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>     <span class="keywordtype">bool</span> IsAttribute = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_square);</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>     PA.Revert();</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>     <span class="keywordflow">if</span> (IsAttribute)</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>       <span class="comment">// Case 1: C++11 attribute.</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>       <span class="keywordflow">return</span> CAK_AttributeSpecifier;</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> </div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>     <span class="keywordflow">if</span> (OuterMightBeMessageSend)</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>       <span class="comment">// Case 4: Lambda in message send.</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>       <span class="keywordflow">return</span> CAK_NotAttributeSpecifier;</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> </div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>     <span class="comment">// Case 2: Lambda in array size / index.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>     <span class="keywordflow">return</span> CAK_InvalidAttributeSpecifier;</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> </div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>   ConsumeBracket();</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> </div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>   <span class="comment">// If we don't have a lambda-introducer, then we have an attribute or a</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   <span class="comment">// message-send.</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   <span class="keywordtype">bool</span> IsAttribute = <span class="keyword">true</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::r_square)) {</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma)) {</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>       <span class="comment">// Case 1: Stray commas can only occur in attributes.</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>       PA.Revert();</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>       <span class="keywordflow">return</span> CAK_AttributeSpecifier;</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>     }</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> </div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>     <span class="comment">// Parse the attribute-token, if present.</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>     <span class="comment">// C++11 [dcl.attr.grammar]:</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>     <span class="comment">//   If a keyword or an alternative token that satisfies the syntactic</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>     <span class="comment">//   requirements of an identifier is contained in an attribute-token,</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>     <span class="comment">//   it is considered an identifier.</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</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="l00577"></a><span class="lineno">  577</span>     <span class="keywordflow">if</span> (!TryParseCXX11AttributeIdentifier(Loc)) {</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>       IsAttribute = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>       <span class="keywordflow">break</span>;</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>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::coloncolon)) {</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>       <span class="keywordflow">if</span> (!TryParseCXX11AttributeIdentifier(Loc)) {</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>         IsAttribute = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>       }</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>     }</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> </div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>     <span class="comment">// Parse the attribute-argument-clause, if present.</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>       ConsumeParen();</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>       <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>         IsAttribute = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>       }</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>     }</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span> </div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ellipsis))</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> </div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::comma))</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>   }</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> </div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>   <span class="comment">// An attribute must end ']]'.</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>   <span class="keywordflow">if</span> (IsAttribute) {</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_square)) {</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>       ConsumeBracket();</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>       IsAttribute = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_square);</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>       IsAttribute = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>     }</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>   }</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>   PA.Revert();</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">if</span> (IsAttribute)</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>     <span class="comment">// Case 1: C++11 statement attribute.</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>     <span class="keywordflow">return</span> CAK_AttributeSpecifier;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span> </div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>   <span class="comment">// Case 3: Message send.</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>   <span class="keywordflow">return</span> CAK_NotAttributeSpecifier;</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span> }</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> </div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> Parser::TPResult Parser::TryParsePtrOperatorSeq() {</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>   <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::coloncolon) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier))</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#af6d88d3c2f1c4b03b72d93bde3f719b0">TryAnnotateCXXScopeToken</a>(<span class="keyword">true</span>))</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span> </div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::star) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::amp) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::caret) ||</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>         Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ampamp) ||</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>         (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope) && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::star))) {</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>       <span class="comment">// ptr-operator</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>       <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_const)    ||</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>              Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_volatile) ||</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>              Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_restrict))</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>         <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>       <span class="keywordflow">return</span> TPResult::True();</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> }</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span> <span class="comment"></span></div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span> <span class="comment">///         operator-function-id:</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span> <span class="comment">///           'operator' operator</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span> <span class="comment">///         operator: one of</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span> <span class="comment">///           new  delete  new[]  delete[]  +  -  *  /  %  ^  [...]</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span> <span class="comment">///         conversion-function-id:</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="comment">///           'operator' conversion-type-id</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> <span class="comment">///         conversion-type-id:</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span> <span class="comment">///           type-specifier-seq conversion-declarator[opt]</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span> <span class="comment">///         conversion-declarator:</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> <span class="comment">///           ptr-operator conversion-declarator[opt]</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment">///         literal-operator-id:</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span> <span class="comment">///           'operator' string-literal identifier</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span> <span class="comment">///           'operator' user-defined-string-literal</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span> <span class="comment"></span>Parser::TPResult Parser::TryParseOperatorId() {</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_operator));</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> </div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>   <span class="comment">// Maybe this is an operator-function-id.</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>   <span class="keywordflow">case</span> tok::kw_new: <span class="keywordflow">case</span> tok::kw_delete:</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_square) && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_square)) {</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>       ConsumeBracket();</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>       ConsumeBracket();</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>     <span class="keywordflow">return</span> TPResult::True();</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="preprocessor">#define OVERLOADED_OPERATOR(Name, Spelling, Token, Unary, Binary, MemOnly) \</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span> <span class="preprocessor">  case tok::Token:</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="preprocessor"></span><span class="preprocessor">#define OVERLOADED_OPERATOR_MULTI(Name, Spelling, Unary, Binary, MemOnly)</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="preprocessor"></span><span class="preprocessor">#include "clang/Basic/OperatorKinds.def"</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span> </div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>   <span class="keywordflow">case</span> tok::l_square:</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().is(tok::r_square)) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>       ConsumeBracket();</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>       ConsumeBracket();</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>     }</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span> </div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>   <span class="keywordflow">case</span> tok::l_paren:</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().is(tok::r_paren)) {</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>       ConsumeParen();</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>       ConsumeParen();</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>     }</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>     <span class="keywordflow">break</span>;</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="keywordflow">default</span>:</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   }</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span> </div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>   <span class="comment">// Maybe this is a literal-operator-id.</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bba306744f6eb6433073e27523a5ed63184">CPlusPlus11</a> && isTokenStringLiteral()) {</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>     <span class="keywordtype">bool</span> FoundUDSuffix = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>     <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>       FoundUDSuffix |= Tok.<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="l00712"></a><span class="lineno">  712</span>       ConsumeStringToken();</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>     } <span class="keywordflow">while</span> (isTokenStringLiteral());</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span> </div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>     <span class="keywordflow">if</span> (!FoundUDSuffix) {</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier))</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>         <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>     }</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>     <span class="keywordflow">return</span> TPResult::True();</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> </div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>   <span class="comment">// Maybe this is a conversion-function-id.</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>   <span class="keywordtype">bool</span> AnyDeclSpecifiers = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>   <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>     TPResult TPR = isCXXDeclarationSpecifier();</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>     <span class="keywordflow">if</span> (TPR == TPResult::Error())</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>       <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>     <span class="keywordflow">if</span> (TPR == TPResult::False()) {</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>       <span class="keywordflow">if</span> (!AnyDeclSpecifiers)</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>     }</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>     <span class="keywordflow">if</span> (TryConsumeDeclarationSpecifier() == TPResult::Error())</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>     AnyDeclSpecifiers = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>   }</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>   <span class="keywordflow">return</span> TryParsePtrOperatorSeq();</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> }</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="comment"></span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="comment">///         declarator:</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span> <span class="comment">///           direct-declarator</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span> <span class="comment">///           ptr-operator declarator</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span> <span class="comment">///         direct-declarator:</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span> <span class="comment">///           declarator-id</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span> <span class="comment">///           direct-declarator '(' parameter-declaration-clause ')'</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span> <span class="comment">///                 cv-qualifier-seq[opt] exception-specification[opt]</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="comment">///           direct-declarator '[' constant-expression[opt] ']'</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="comment">///           '(' declarator ')'</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span> <span class="comment">/// [GNU]     '(' attributes declarator ')'</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="comment">///         abstract-declarator:</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="comment">///           ptr-operator abstract-declarator[opt]</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="comment">///           direct-abstract-declarator</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="comment">///           ...</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="comment">///         direct-abstract-declarator:</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> <span class="comment">///           direct-abstract-declarator[opt]</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span> <span class="comment">///           '(' parameter-declaration-clause ')' cv-qualifier-seq[opt]</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span> <span class="comment">///                 exception-specification[opt]</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> <span class="comment">///           direct-abstract-declarator[opt] '[' constant-expression[opt] ']'</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> <span class="comment">///           '(' abstract-declarator ')'</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span> <span class="comment">///         ptr-operator:</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span> <span class="comment">///           '*' cv-qualifier-seq[opt]</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="comment">///           '&'</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span> <span class="comment">/// [C++0x]   '&&'                                                        [TODO]</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="comment">///           '::'[opt] nested-name-specifier '*' cv-qualifier-seq[opt]</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span> <span class="comment">///         cv-qualifier-seq:</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span> <span class="comment">///           cv-qualifier cv-qualifier-seq[opt]</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span> <span class="comment">///         cv-qualifier:</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span> <span class="comment">///           'const'</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="comment">///           'volatile'</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> <span class="comment">///         declarator-id:</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="comment">///           '...'[opt] id-expression</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> <span class="comment">///         id-expression:</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> <span class="comment">///           unqualified-id</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span> <span class="comment">///           qualified-id                                                [TODO]</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span> <span class="comment">///         unqualified-id:</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span> <span class="comment">///           identifier</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span> <span class="comment">///           operator-function-id</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span> <span class="comment">///           conversion-function-id</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span> <span class="comment">///           literal-operator-id</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="comment">///           '~' class-name                                              [TODO]</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <span class="comment">///           '~' decltype-specifier                                      [TODO]</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span> <span class="comment">///           template-id                                                 [TODO]</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> <span class="comment"></span>Parser::TPResult Parser::TryParseDeclarator(<span class="keywordtype">bool</span> mayBeAbstract,</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>                                             <span class="keywordtype">bool</span> mayHaveIdentifier) {</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>   <span class="comment">// declarator:</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>   <span class="comment">//   direct-declarator</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>   <span class="comment">//   ptr-operator declarator</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>   <span class="keywordflow">if</span> (TryParsePtrOperatorSeq() == TPResult::Error())</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>     <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span> </div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>   <span class="comment">// direct-declarator:</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>   <span class="comment">// direct-abstract-declarator:</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ellipsis))</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span> </div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   <span class="keywordflow">if</span> ((Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_operator) ||</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>        (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope) && (<a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier) ||</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>                                         <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_operator)))) &&</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>       mayHaveIdentifier) {</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>     <span class="comment">// declarator-id</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope))</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier))</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>       TentativelyDeclaredIdentifiers.push_back(Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>());</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_operator)) {</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>       <span class="keywordflow">if</span> (TryParseOperatorId() == TPResult::Error())</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>     } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>     ConsumeParen();</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>     <span class="keywordflow">if</span> (mayBeAbstract &&</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>         (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren) ||       <span class="comment">// 'int()' is a function.</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>          <span class="comment">// 'int(...)' is a function.</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>          (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ellipsis) && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren)) ||</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>          isDeclarationSpecifier())) {   <span class="comment">// 'int(int)' is a function.</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>       <span class="comment">// '(' parameter-declaration-clause ')' cv-qualifier-seq[opt]</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>       <span class="comment">//        exception-specification[opt]</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>       TPResult TPR = TryParseFunctionDeclarator();</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>       <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>         <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>       <span class="comment">// '(' declarator ')'</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>       <span class="comment">// '(' attributes declarator ')'</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>       <span class="comment">// '(' abstract-declarator ')'</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___attribute) ||</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>           Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___declspec) ||</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>           Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___cdecl) ||</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>           Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___stdcall) ||</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>           Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___fastcall) ||</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>           Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___thiscall) ||</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>           Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___unaligned))</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>         <span class="keywordflow">return</span> TPResult::True(); <span class="comment">// attributes indicate declaration</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>       TPResult TPR = TryParseDeclarator(mayBeAbstract, mayHaveIdentifier);</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>       <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>         <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</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="l00850"></a><span class="lineno">  850</span>         <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>       ConsumeParen();</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>     }</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!mayBeAbstract) {</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>     <span class="keywordflow">return</span> TPResult::False();</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="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>     TPResult TPR(TPResult::Ambiguous());</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span> </div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>     <span class="comment">// abstract-declarator: ...</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ellipsis))</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span> </div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>       <span class="comment">// Check whether we have a function declarator or a possible ctor-style</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>       <span class="comment">// initializer that follows the declarator. Note that ctor-style</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>       <span class="comment">// initializers are not possible in contexts where abstract declarators</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>       <span class="comment">// are allowed.</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>       <span class="keywordflow">if</span> (!mayBeAbstract && !isCXXFunctionDeclarator())</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span> </div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>       <span class="comment">// direct-declarator '(' parameter-declaration-clause ')'</span></div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>       <span class="comment">//        cv-qualifier-seq[opt] exception-specification[opt]</span></div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>       ConsumeParen();</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>       TPR = TryParseFunctionDeclarator();</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_square)) {</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>       <span class="comment">// direct-declarator '[' constant-expression[opt] ']'</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>       <span class="comment">// direct-abstract-declarator[opt] '[' constant-expression[opt] ']'</span></div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>       TPR = TryParseBracketDeclarator();</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>     }</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span> </div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>     <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>       <span class="keywordflow">return</span> TPR;</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> </div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>   <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span> }</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span> </div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span> Parser::TPResult </div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span> Parser::isExpressionOrTypeSpecifierSimple(<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="l00893"></a><span class="lineno">  893</span>   <span class="keywordflow">switch</span> (Kind) {</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>   <span class="comment">// Obviously starts an expression.</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>   <span class="keywordflow">case</span> tok::numeric_constant:</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>   <span class="keywordflow">case</span> tok::char_constant:</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>   <span class="keywordflow">case</span> tok::wide_char_constant:</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>   <span class="keywordflow">case</span> tok::utf16_char_constant:</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>   <span class="keywordflow">case</span> tok::utf32_char_constant:</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>   <span class="keywordflow">case</span> tok::string_literal:</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>   <span class="keywordflow">case</span> tok::wide_string_literal:</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>   <span class="keywordflow">case</span> tok::utf8_string_literal:</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>   <span class="keywordflow">case</span> tok::utf16_string_literal:</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>   <span class="keywordflow">case</span> tok::utf32_string_literal:</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   <span class="keywordflow">case</span> tok::l_square:</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>   <span class="keywordflow">case</span> tok::l_paren:</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>   <span class="keywordflow">case</span> tok::amp:</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>   <span class="keywordflow">case</span> tok::ampamp:</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>   <span class="keywordflow">case</span> tok::star:</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>   <span class="keywordflow">case</span> tok::plus:</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>   <span class="keywordflow">case</span> tok::plusplus:</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>   <span class="keywordflow">case</span> tok::minus:</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>   <span class="keywordflow">case</span> tok::minusminus:</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>   <span class="keywordflow">case</span> tok::tilde:</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>   <span class="keywordflow">case</span> tok::exclaim:</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>   <span class="keywordflow">case</span> tok::kw_sizeof:</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>   <span class="keywordflow">case</span> tok::kw___func__:</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>   <span class="keywordflow">case</span> tok::kw_const_cast:</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>   <span class="keywordflow">case</span> tok::kw_delete:</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>   <span class="keywordflow">case</span> tok::kw_dynamic_cast:</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>   <span class="keywordflow">case</span> tok::kw_false:</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>   <span class="keywordflow">case</span> tok::kw_new:</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>   <span class="keywordflow">case</span> tok::kw_operator:</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>   <span class="keywordflow">case</span> tok::kw_reinterpret_cast:</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>   <span class="keywordflow">case</span> tok::kw_static_cast:</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>   <span class="keywordflow">case</span> tok::kw_this:</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>   <span class="keywordflow">case</span> tok::kw_throw:</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>   <span class="keywordflow">case</span> tok::kw_true:</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>   <span class="keywordflow">case</span> tok::kw_typeid:</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>   <span class="keywordflow">case</span> tok::kw_alignof:</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>   <span class="keywordflow">case</span> tok::kw_noexcept:</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>   <span class="keywordflow">case</span> tok::kw_nullptr:</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>   <span class="keywordflow">case</span> tok::kw__Alignof:</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>   <span class="keywordflow">case</span> tok::kw___null:</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>   <span class="keywordflow">case</span> tok::kw___alignof:</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>   <span class="keywordflow">case</span> tok::kw___builtin_choose_expr:</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>   <span class="keywordflow">case</span> tok::kw___builtin_offsetof:</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>   <span class="keywordflow">case</span> tok::kw___builtin_types_compatible_p:</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>   <span class="keywordflow">case</span> tok::kw___builtin_va_arg:</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>   <span class="keywordflow">case</span> tok::kw___imag:</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>   <span class="keywordflow">case</span> tok::kw___real:</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>   <span class="keywordflow">case</span> tok::kw___FUNCTION__:</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>   <span class="keywordflow">case</span> tok::kw___FUNCDNAME__:</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>   <span class="keywordflow">case</span> tok::kw_L__FUNCTION__:</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>   <span class="keywordflow">case</span> tok::kw___PRETTY_FUNCTION__:</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>   <span class="keywordflow">case</span> tok::kw___has_nothrow_assign:</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>   <span class="keywordflow">case</span> tok::kw___has_nothrow_copy:</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>   <span class="keywordflow">case</span> tok::kw___has_nothrow_constructor:</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>   <span class="keywordflow">case</span> tok::kw___has_trivial_assign:</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>   <span class="keywordflow">case</span> tok::kw___has_trivial_copy:</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>   <span class="keywordflow">case</span> tok::kw___has_trivial_constructor:</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>   <span class="keywordflow">case</span> tok::kw___has_trivial_destructor:</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>   <span class="keywordflow">case</span> tok::kw___has_virtual_destructor:</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>   <span class="keywordflow">case</span> tok::kw___is_abstract:</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>   <span class="keywordflow">case</span> tok::kw___is_base_of:</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>   <span class="keywordflow">case</span> tok::kw___is_class:</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>   <span class="keywordflow">case</span> tok::kw___is_convertible_to:</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>   <span class="keywordflow">case</span> tok::kw___is_empty:</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>   <span class="keywordflow">case</span> tok::kw___is_enum:</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>   <span class="keywordflow">case</span> tok::kw___is_interface_class:</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>   <span class="keywordflow">case</span> tok::kw___is_final:</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>   <span class="keywordflow">case</span> tok::kw___is_literal:</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>   <span class="keywordflow">case</span> tok::kw___is_literal_type:</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>   <span class="keywordflow">case</span> tok::kw___is_pod:</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>   <span class="keywordflow">case</span> tok::kw___is_polymorphic:</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>   <span class="keywordflow">case</span> tok::kw___is_sealed:</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>   <span class="keywordflow">case</span> tok::kw___is_trivial:</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>   <span class="keywordflow">case</span> tok::kw___is_trivially_assignable:</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>   <span class="keywordflow">case</span> tok::kw___is_trivially_constructible:</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>   <span class="keywordflow">case</span> tok::kw___is_trivially_copyable:</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>   <span class="keywordflow">case</span> tok::kw___is_union:</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>   <span class="keywordflow">case</span> tok::kw___uuidof:</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>       </div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>   <span class="comment">// Obviously starts a type-specifier-seq:</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>   <span class="keywordflow">case</span> tok::kw_char:</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>   <span class="keywordflow">case</span> tok::kw_const:</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>   <span class="keywordflow">case</span> tok::kw_double:</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>   <span class="keywordflow">case</span> tok::kw_enum:</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>   <span class="keywordflow">case</span> tok::kw_half:</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>   <span class="keywordflow">case</span> tok::kw_float:</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>   <span class="keywordflow">case</span> tok::kw_int:</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>   <span class="keywordflow">case</span> tok::kw_long:</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>   <span class="keywordflow">case</span> tok::kw___int64:</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>   <span class="keywordflow">case</span> tok::kw___int128:</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>   <span class="keywordflow">case</span> tok::kw_restrict:</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>   <span class="keywordflow">case</span> tok::kw_short:</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>   <span class="keywordflow">case</span> tok::kw_signed:</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>   <span class="keywordflow">case</span> tok::kw_struct:</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>   <span class="keywordflow">case</span> tok::kw_union:</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>   <span class="keywordflow">case</span> tok::kw_unsigned:</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>   <span class="keywordflow">case</span> tok::kw_void:</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>   <span class="keywordflow">case</span> tok::kw_volatile:</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>   <span class="keywordflow">case</span> tok::kw__Bool:</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>   <span class="keywordflow">case</span> tok::kw__Complex:</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>   <span class="keywordflow">case</span> tok::kw_class:</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>   <span class="keywordflow">case</span> tok::kw_typename:</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>   <span class="keywordflow">case</span> tok::kw_wchar_t:</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>   <span class="keywordflow">case</span> tok::kw_char16_t:</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>   <span class="keywordflow">case</span> tok::kw_char32_t:</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>   <span class="keywordflow">case</span> tok::kw__Decimal32:</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>   <span class="keywordflow">case</span> tok::kw__Decimal64:</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>   <span class="keywordflow">case</span> tok::kw__Decimal128:</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>   <span class="keywordflow">case</span> tok::kw___interface:</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>   <span class="keywordflow">case</span> tok::kw___thread:</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>   <span class="keywordflow">case</span> tok::kw_thread_local:</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>   <span class="keywordflow">case</span> tok::kw__Thread_local:</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>   <span class="keywordflow">case</span> tok::kw_typeof:</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>   <span class="keywordflow">case</span> tok::kw___underlying_type:</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>   <span class="keywordflow">case</span> tok::kw___cdecl:</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>   <span class="keywordflow">case</span> tok::kw___stdcall:</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>   <span class="keywordflow">case</span> tok::kw___fastcall:</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>   <span class="keywordflow">case</span> tok::kw___thiscall:</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>   <span class="keywordflow">case</span> tok::kw___unaligned:</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>   <span class="keywordflow">case</span> tok::kw___vector:</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>   <span class="keywordflow">case</span> tok::kw___pixel:</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>   <span class="keywordflow">case</span> tok::kw__Atomic:</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>   <span class="keywordflow">case</span> tok::kw_image1d_t:</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>   <span class="keywordflow">case</span> tok::kw_image1d_array_t:</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>   <span class="keywordflow">case</span> tok::kw_image1d_buffer_t:</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>   <span class="keywordflow">case</span> tok::kw_image2d_t:</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>   <span class="keywordflow">case</span> tok::kw_image2d_array_t:</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>   <span class="keywordflow">case</span> tok::kw_image3d_t:</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>   <span class="keywordflow">case</span> tok::kw_sampler_t:</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>   <span class="keywordflow">case</span> tok::kw_event_t:</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>   <span class="keywordflow">case</span> tok::kw___unknown_anytype:</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>     <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> </div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>   }</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>   </div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>   <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> }</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> </div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="keywordtype">bool</span> Parser::isTentativelyDeclared(<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II) {</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>   <span class="keywordflow">return</span> std::find(TentativelyDeclaredIdentifiers.begin(),</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>                    TentativelyDeclaredIdentifiers.end(), II)</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>       != TentativelyDeclaredIdentifiers.end();</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> }</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment"></span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">/// isCXXDeclarationSpecifier - Returns TPResult::True() if it is a declaration</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">/// specifier, TPResult::False() if it is not, TPResult::Ambiguous() if it could</span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">/// be either a decl-specifier or a function-style cast, and TPResult::Error()</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment">/// if a parsing error was found and reported.</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment">/// If HasMissingTypename is provided, a name with a dependent scope specifier</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">/// will be treated as ambiguous if the 'typename' keyword is missing. If this</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">/// happens, *HasMissingTypename will be set to 'true'. This will also be used</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">/// as an indicator that undeclared identifiers (which will trigger a later</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment">/// parse error) should be treated as types. Returns TPResult::Ambiguous() in</span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="comment">/// such cases.</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="comment">///         decl-specifier:</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment">///           storage-class-specifier</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment">///           type-specifier</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">///           function-specifier</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment">///           'friend'</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">///           'typedef'</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment">/// [C++11]   'constexpr'</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">/// [GNU]     attributes declaration-specifiers[opt]</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment">///         storage-class-specifier:</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">///           'register'</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">///           'static'</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment">///           'extern'</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment">///           'mutable'</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment">///           'auto'</span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">/// [GNU]     '__thread'</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment">/// [C++11]   'thread_local'</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment">/// [C11]     '_Thread_local'</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment">///         function-specifier:</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment">///           'inline'</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment">///           'virtual'</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="comment">///           'explicit'</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">///         typedef-name:</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment">///           identifier</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">///         type-specifier:</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment">///           simple-type-specifier</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment">///           class-specifier</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">///           enum-specifier</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment">///           elaborated-type-specifier</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment">///           typename-specifier</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">///           cv-qualifier</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">///         simple-type-specifier:</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment">///           '::'[opt] nested-name-specifier[opt] type-name</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment">///           '::'[opt] nested-name-specifier 'template'</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment">///                 simple-template-id                              [TODO]</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment">///           'char'</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment">///           'wchar_t'</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">///           'bool'</span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">///           'short'</span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment">///           'int'</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">///           'long'</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">///           'signed'</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment">///           'unsigned'</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">///           'float'</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment">///           'double'</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="comment">///           'void'</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment">/// [GNU]     typeof-specifier</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="comment">/// [GNU]     '_Complex'</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment">/// [C++11]   'auto'</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment">/// [C++11]   'decltype' ( expression )</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment">/// [C++1y]   'decltype' ( 'auto' )</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">///         type-name:</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment">///           class-name</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">///           enum-name</span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment">///           typedef-name</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment">///         elaborated-type-specifier:</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="comment">///           class-key '::'[opt] nested-name-specifier[opt] identifier</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment">///           class-key '::'[opt] nested-name-specifier[opt] 'template'[opt]</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment">///               simple-template-id</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment">///           'enum' '::'[opt] nested-name-specifier[opt] identifier</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment">///         enum-name:</span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">///           identifier</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment">///         enum-specifier:</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="comment">///           'enum' identifier[opt] '{' enumerator-list[opt] '}'</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="comment">///           'enum' identifier[opt] '{' enumerator-list ',' '}'</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment">///         class-specifier:</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment">///           class-head '{' member-specification[opt] '}'</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="comment">///         class-head:</span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment">///           class-key identifier[opt] base-clause[opt]</span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment">///           class-key nested-name-specifier identifier base-clause[opt]</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment">///           class-key nested-name-specifier[opt] simple-template-id</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment">///               base-clause[opt]</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment">///         class-key:</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment">///           'class'</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment">///           'struct'</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment">///           'union'</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment">///         cv-qualifier:</span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <span class="comment">///           'const'</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment">///           'volatile'</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment">/// [GNU]     restrict</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment"></span>Parser::TPResult</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> Parser::isCXXDeclarationSpecifier(Parser::TPResult BracedCastResult,</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>                                   <span class="keywordtype">bool</span> *HasMissingTypename) {</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>   <span class="keywordflow">case</span> tok::identifier: {</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>     <span class="comment">// Check for need to substitute AltiVec __vector keyword</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>     <span class="comment">// for "vector" identifier.</span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>     <span class="keywordflow">if</span> (TryAltiVecVectorToken())</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> </div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Next = <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>();</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>     <span class="comment">// In 'foo bar', 'foo' is always a type name outside of Objective-C.</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().ObjC1 && Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier))</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> </div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>     <span class="keywordflow">if</span> (Next.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::coloncolon) && Next.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::less)) {</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>       <span class="comment">// Determine whether this is a valid expression. If not, we will hit</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>       <span class="comment">// a parse error one way or another. In that case, tell the caller that</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>       <span class="comment">// this is ambiguous. Typo-correct to type and expression keywords and</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>       <span class="comment">// to types and identifiers, in order to try to recover from errors.</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>       <a class="code" href="classclang_1_1CorrectionCandidateCallback.html" title="Base class for callback objects used by Sema::CorrectTypo to check the validity of a potential typo c...">CorrectionCandidateCallback</a> <a class="code" href="classclang_1_1TypoCorrection.html" title="Simple class containing the result of Sema::CorrectTypo.">TypoCorrection</a>;</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>       TypoCorrection.<a class="code" href="classclang_1_1CorrectionCandidateCallback.html#ad9149dc43f1b08be6b495ccd97a8bb76">WantRemainingKeywords</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>       TypoCorrection.<a class="code" href="classclang_1_1CorrectionCandidateCallback.html#a5f5117441652a4d5e52d95b3b5cd9781">WantTypeSpecifiers</a> = Next.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::arrow);</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>       <span class="keywordflow">switch</span> (TryAnnotateName(<span class="keyword">false</span> <span class="comment">/* no nested name specifier */</span>,</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>                               &TypoCorrection)) {</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>       <span class="keywordflow">case</span> ANK_Error:</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>       <span class="keywordflow">case</span> ANK_TentativeDecl:</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>         <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>       <span class="keywordflow">case</span> ANK_TemplateName:</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>         <span class="comment">// A bare type template-name which can't be a template template</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>         <span class="comment">// argument is an error, and was probably intended to be a type.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>         <span class="keywordflow">return</span> GreaterThanIsOperator ? TPResult::True() : TPResult::False();</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>       <span class="keywordflow">case</span> ANK_Unresolved:</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>         <span class="keywordflow">return</span> HasMissingTypename ? TPResult::Ambiguous() : TPResult::False();</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>       <span class="keywordflow">case</span> ANK_Success:</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>       }</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>       assert(Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::identifier) &&</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>              <span class="stringliteral">"TryAnnotateName succeeded without producing an annotation"</span>);</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>       <span class="comment">// This might possibly be a type with a dependent scope specifier and</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>       <span class="comment">// a missing 'typename' keyword. Don't use TryAnnotateName in this case,</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>       <span class="comment">// since it will annotate as a primary expression, and we want to use the</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>       <span class="comment">// "missing 'typename'" logic.</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a6a05dc9fb5788cbe37c727e89324c04d">TryAnnotateTypeOrScopeToken</a>())</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>       <span class="comment">// If annotation failed, assume it's a non-type.</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>       <span class="comment">// FIXME: If this happens due to an undeclared identifier, treat it as</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>       <span class="comment">// ambiguous.</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier))</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>         <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>     }</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> </div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>     <span class="comment">// We annotated this token as something. Recurse to handle whatever we got.</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>     <span class="keywordflow">return</span> isCXXDeclarationSpecifier(BracedCastResult, HasMissingTypename);</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>   }</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> </div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>   <span class="keywordflow">case</span> tok::kw_typename:  <span class="comment">// typename T::type</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>     <span class="comment">// Annotate typenames and C++ scope specifiers.  If we get one, just</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>     <span class="comment">// recurse to handle whatever we get.</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a6a05dc9fb5788cbe37c727e89324c04d">TryAnnotateTypeOrScopeToken</a>())</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>     <span class="keywordflow">return</span> isCXXDeclarationSpecifier(BracedCastResult, HasMissingTypename);</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> </div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>   <span class="keywordflow">case</span> tok::coloncolon: {    <span class="comment">// ::foo::bar</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Next = <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>();</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>     <span class="keywordflow">if</span> (Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_new) ||    <span class="comment">// ::new</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>         Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_delete))   <span class="comment">// ::delete</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>       <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>   }</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>     <span class="comment">// Fall through.</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>   <span class="keywordflow">case</span> tok::kw_decltype:</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>     <span class="comment">// Annotate typenames and C++ scope specifiers.  If we get one, just</span></div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>     <span class="comment">// recurse to handle whatever we get.</span></div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a6a05dc9fb5788cbe37c727e89324c04d">TryAnnotateTypeOrScopeToken</a>())</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>     <span class="keywordflow">return</span> isCXXDeclarationSpecifier(BracedCastResult, HasMissingTypename);</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">// decl-specifier:</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>     <span class="comment">//   storage-class-specifier</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>     <span class="comment">//   type-specifier</span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>     <span class="comment">//   function-specifier</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>     <span class="comment">//   'friend'</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>     <span class="comment">//   'typedef'</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>     <span class="comment">//   'constexpr'</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>   <span class="keywordflow">case</span> tok::kw_friend:</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>   <span class="keywordflow">case</span> tok::kw_typedef:</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>   <span class="keywordflow">case</span> tok::kw_constexpr:</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>     <span class="comment">// storage-class-specifier</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>   <span class="keywordflow">case</span> tok::kw_register:</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>   <span class="keywordflow">case</span> tok::kw_static:</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>   <span class="keywordflow">case</span> tok::kw_extern:</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>   <span class="keywordflow">case</span> tok::kw_mutable:</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>   <span class="keywordflow">case</span> tok::kw_auto:</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>   <span class="keywordflow">case</span> tok::kw___thread:</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>   <span class="keywordflow">case</span> tok::kw_thread_local:</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>   <span class="keywordflow">case</span> tok::kw__Thread_local:</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>     <span class="comment">// function-specifier</span></div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>   <span class="keywordflow">case</span> tok::kw_inline:</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>   <span class="keywordflow">case</span> tok::kw_virtual:</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>   <span class="keywordflow">case</span> tok::kw_explicit:</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> </div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>     <span class="comment">// Modules</span></div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>   <span class="keywordflow">case</span> tok::kw___module_private__:</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">// Debugger support</span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>   <span class="keywordflow">case</span> tok::kw___unknown_anytype:</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>       </div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>     <span class="comment">// type-specifier:</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>     <span class="comment">//   simple-type-specifier</span></div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>     <span class="comment">//   class-specifier</span></div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>     <span class="comment">//   enum-specifier</span></div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>     <span class="comment">//   elaborated-type-specifier</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>     <span class="comment">//   typename-specifier</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>     <span class="comment">//   cv-qualifier</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> </div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>     <span class="comment">// class-specifier</span></div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>     <span class="comment">// elaborated-type-specifier</span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>   <span class="keywordflow">case</span> tok::kw_class:</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>   <span class="keywordflow">case</span> tok::kw_struct:</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>   <span class="keywordflow">case</span> tok::kw_union:</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>   <span class="keywordflow">case</span> tok::kw___interface:</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>     <span class="comment">// enum-specifier</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>   <span class="keywordflow">case</span> tok::kw_enum:</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>     <span class="comment">// cv-qualifier</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>   <span class="keywordflow">case</span> tok::kw_const:</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>   <span class="keywordflow">case</span> tok::kw_volatile:</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">// GNU</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>   <span class="keywordflow">case</span> tok::kw_restrict:</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>   <span class="keywordflow">case</span> tok::kw__Complex:</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>   <span class="keywordflow">case</span> tok::kw___attribute:</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> </div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>     <span class="comment">// Microsoft</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>   <span class="keywordflow">case</span> tok::kw___declspec:</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>   <span class="keywordflow">case</span> tok::kw___cdecl:</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>   <span class="keywordflow">case</span> tok::kw___stdcall:</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>   <span class="keywordflow">case</span> tok::kw___fastcall:</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>   <span class="keywordflow">case</span> tok::kw___thiscall:</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>   <span class="keywordflow">case</span> tok::kw___w64:</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>   <span class="keywordflow">case</span> tok::kw___sptr:</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>   <span class="keywordflow">case</span> tok::kw___uptr:</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>   <span class="keywordflow">case</span> tok::kw___ptr64:</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>   <span class="keywordflow">case</span> tok::kw___ptr32:</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>   <span class="keywordflow">case</span> tok::kw___forceinline:</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>   <span class="keywordflow">case</span> tok::kw___unaligned:</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> </div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>     <span class="comment">// Borland</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>   <span class="keywordflow">case</span> tok::kw___pascal:</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>   </div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>     <span class="comment">// AltiVec</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>   <span class="keywordflow">case</span> tok::kw___vector:</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> </div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>   <span class="keywordflow">case</span> tok::annot_template_id: {</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>     <a class="code" href="structclang_1_1TemplateIdAnnotation.html" title="Information about a template-id annotation token.">TemplateIdAnnotation</a> *TemplateId = takeTemplateIdAnnotation(Tok);</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>     <span class="keywordflow">if</span> (TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a3cc5d86a615ad829824dd35d8f3d7ee6" title="The kind of template that Template refers to.">Kind</a> != <a class="code" href="namespaceclang.html#aba1f53f66be2f1991ebd6cda5d781ae8a0f3e8265c71aa000cff6863ee506b898">TNK_Type_template</a>)</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>       <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>     <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> SS;</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>     AnnotateTemplateIdTokenAsType();</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>     assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_typename));</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>     <span class="keywordflow">goto</span> case_typename;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>   }</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> </div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>   <span class="keywordflow">case</span> tok::annot_cxxscope: <span class="comment">// foo::bar or ::foo::bar, but already parsed</span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>     <span class="comment">// We've already annotated a scope; try to annotate a type.</span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a6a05dc9fb5788cbe37c727e89324c04d">TryAnnotateTypeOrScopeToken</a>())</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>     <span class="keywordflow">if</span> (!Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_typename)) {</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>       <span class="comment">// If the next token is an identifier or a type qualifier, then this</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>       <span class="comment">// can't possibly be a valid expression either.</span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope) && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier)) {</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>         <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> SS;</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>         Actions.<a class="code" href="classclang_1_1Sema.html#a9b1bd9aec09848db4124f9048fb72a98" title="Given an annotation pointer for a nested-name-specifier, restore the nested-name-specifier structure...">RestoreNestedNameSpecifierAnnotation</a>(Tok.<a class="code" href="classclang_1_1Token.html#a428dc637d123fb0d48a626eb77c4de25">getAnnotationValue</a>(),</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>                                                      Tok.<a class="code" href="classclang_1_1Token.html#a4912ff2ace18d707656b6d5e1605512a" title="SourceRange of the group of tokens that this annotation token represents.">getAnnotationRange</a>(),</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>                                                      SS);</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>         <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae880473296a083a62b508203cf9c3f24" title="Retrieve the representation of the nested-name-specifier.">getScopeRep</a>() && SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae880473296a083a62b508203cf9c3f24" title="Retrieve the representation of the nested-name-specifier.">getScopeRep</a>()-><a class="code" href="classclang_1_1NestedNameSpecifier.html#a860eb5e746ef604d75f0beae5634ca91" title="Whether this nested name specifier refers to a dependent type or not.">isDependent</a>()) {</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>           TentativeParsingAction PA(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>           <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>           <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>           <span class="keywordtype">bool</span> isIdentifier = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier);</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>           TPResult TPR = TPResult::False();</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>           <span class="keywordflow">if</span> (!isIdentifier)</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>             TPR = isCXXDeclarationSpecifier(BracedCastResult,</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>                                             HasMissingTypename);</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>           PA.Revert();</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> </div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>           <span class="keywordflow">if</span> (isIdentifier ||</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>               TPR == TPResult::True() || TPR == TPResult::Error())</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>             <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> </div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>           <span class="keywordflow">if</span> (HasMissingTypename) {</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>             <span class="comment">// We can't tell whether this is a missing 'typename' or a valid</span></div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>             <span class="comment">// expression.</span></div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>             *HasMissingTypename = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>             <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>           }</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>         } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>           <span class="comment">// Try to resolve the name. If it doesn't exist, assume it was</span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>           <span class="comment">// intended to name a type and keep disambiguating.</span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>           <span class="keywordflow">switch</span> (TryAnnotateName(<span class="keyword">false</span> <span class="comment">/* SS is not dependent */</span>)) {</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>           <span class="keywordflow">case</span> ANK_Error:</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>             <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>           <span class="keywordflow">case</span> ANK_TentativeDecl:</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>             <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>           <span class="keywordflow">case</span> ANK_TemplateName:</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>             <span class="comment">// A bare type template-name which can't be a template template</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>             <span class="comment">// argument is an error, and was probably intended to be a type.</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>             <span class="keywordflow">return</span> GreaterThanIsOperator ? TPResult::True() : TPResult::False();</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>           <span class="keywordflow">case</span> ANK_Unresolved:</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>             <span class="keywordflow">return</span> HasMissingTypename ? TPResult::Ambiguous()</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>                                       : TPResult::False();</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>           <span class="keywordflow">case</span> ANK_Success:</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>             <span class="comment">// Annotated it, check again.</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>             assert(Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::annot_cxxscope) ||</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>                    <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::identifier));</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>             <span class="keywordflow">return</span> isCXXDeclarationSpecifier(BracedCastResult,</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>                                              HasMissingTypename);</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>           }</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>         }</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>       }</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>       <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>     }</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>     <span class="comment">// If that succeeded, fallthrough into the generic simple-type-id case.</span></div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> </div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>     <span class="comment">// The ambiguity resides in a simple-type-specifier/typename-specifier</span></div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>     <span class="comment">// followed by a '('. The '(' could either be the start of:</span></div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>     <span class="comment">//   direct-declarator:</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>     <span class="comment">//     '(' declarator ')'</span></div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>     <span class="comment">//   direct-abstract-declarator:</span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>     <span class="comment">//     '(' parameter-declaration-clause ')' cv-qualifier-seq[opt]</span></div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>     <span class="comment">//              exception-specification[opt]</span></div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>     <span class="comment">//     '(' abstract-declarator ')'</span></div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>     <span class="comment">// or part of a function-style cast expression:</span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>     <span class="comment">//     simple-type-specifier '(' expression-list[opt] ')'</span></div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> </div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>     <span class="comment">// simple-type-specifier:</span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> </div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>   <span class="keywordflow">case</span> tok::annot_typename:</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>   case_typename:</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>     <span class="comment">// In Objective-C, we might have a protocol-qualified type.</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().ObjC1 && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().is(tok::less)) {</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>       <span class="comment">// Tentatively parse the </span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>       TentativeParsingAction PA(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>(); <span class="comment">// The type token</span></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>       TPResult TPR = TryParseProtocolQualifiers();</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>       <span class="keywordtype">bool</span> isFollowedByParen = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren);</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>       <span class="keywordtype">bool</span> isFollowedByBrace = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_brace);</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>       </div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>       PA.Revert();</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>       </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>       <span class="keywordflow">if</span> (TPR == TPResult::Error())</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>         <span class="keywordflow">return</span> TPResult::Error();</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">if</span> (isFollowedByParen)</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>         <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> </div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bba306744f6eb6433073e27523a5ed63184">CPlusPlus11</a> && isFollowedByBrace)</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>         <span class="keywordflow">return</span> BracedCastResult;</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>       </div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>     }</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>       </div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>   <span class="keywordflow">case</span> tok::kw_char:</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>   <span class="keywordflow">case</span> tok::kw_wchar_t:</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>   <span class="keywordflow">case</span> tok::kw_char16_t:</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>   <span class="keywordflow">case</span> tok::kw_char32_t:</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>   <span class="keywordflow">case</span> tok::kw_bool:</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>   <span class="keywordflow">case</span> tok::kw_short:</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>   <span class="keywordflow">case</span> tok::kw_int:</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>   <span class="keywordflow">case</span> tok::kw_long:</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>   <span class="keywordflow">case</span> tok::kw___int64:</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>   <span class="keywordflow">case</span> tok::kw___int128:</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>   <span class="keywordflow">case</span> tok::kw_signed:</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>   <span class="keywordflow">case</span> tok::kw_unsigned:</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>   <span class="keywordflow">case</span> tok::kw_half:</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>   <span class="keywordflow">case</span> tok::kw_float:</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>   <span class="keywordflow">case</span> tok::kw_double:</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>   <span class="keywordflow">case</span> tok::kw_void:</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>   <span class="keywordflow">case</span> tok::annot_decltype:</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().is(tok::l_paren))</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>       <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> </div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>     <span class="comment">// This is a function-style cast in all cases we disambiguate other than</span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>     <span class="comment">// one:</span></div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>     <span class="comment">//   struct S {</span></div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>     <span class="comment">//     enum E : int { a = 4 }; // enum</span></div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>     <span class="comment">//     enum E : int { 4 };     // bit-field</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>     <span class="comment">//   };</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bba306744f6eb6433073e27523a5ed63184">CPlusPlus11</a> && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().is(tok::l_brace))</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>       <span class="keywordflow">return</span> BracedCastResult;</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>     <span class="keywordflow">if</span> (isStartOfObjCClassMessageMissingOpenBracket())</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>       <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>       </div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> </div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>   <span class="comment">// GNU typeof support.</span></div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>   <span class="keywordflow">case</span> tok::kw_typeof: {</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().isNot(tok::l_paren))</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> </div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>     TentativeParsingAction PA(*<span class="keyword">this</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>     TPResult TPR = TryParseTypeofSpecifier();</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>     <span class="keywordtype">bool</span> isFollowedByParen = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren);</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>     <span class="keywordtype">bool</span> isFollowedByBrace = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_brace);</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> </div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>     PA.Revert();</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="keywordflow">if</span> (TPR == TPResult::Error())</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> </div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>     <span class="keywordflow">if</span> (isFollowedByParen)</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>       <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bba306744f6eb6433073e27523a5ed63184">CPlusPlus11</a> && isFollowedByBrace)</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>       <span class="keywordflow">return</span> BracedCastResult;</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> </div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>   }</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> </div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>   <span class="comment">// C++0x type traits support</span></div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>   <span class="keywordflow">case</span> tok::kw___underlying_type:</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> </div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>   <span class="comment">// C11 _Atomic</span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>   <span class="keywordflow">case</span> tok::kw__Atomic:</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>     <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> </div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>     <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>   }</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> }</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> </div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <span class="keywordtype">bool</span> Parser::isCXXDeclarationSpecifierAType() {</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>     <span class="comment">// typename-specifier</span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>   <span class="keywordflow">case</span> tok::annot_decltype:</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>   <span class="keywordflow">case</span> tok::annot_template_id:</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>   <span class="keywordflow">case</span> tok::annot_typename:</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>   <span class="keywordflow">case</span> tok::kw_typeof:</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>   <span class="keywordflow">case</span> tok::kw___underlying_type:</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> </div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>     <span class="comment">// elaborated-type-specifier</span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>   <span class="keywordflow">case</span> tok::kw_class:</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>   <span class="keywordflow">case</span> tok::kw_struct:</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>   <span class="keywordflow">case</span> tok::kw_union:</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>   <span class="keywordflow">case</span> tok::kw___interface:</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>   <span class="keywordflow">case</span> tok::kw_enum:</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>     <span class="keywordflow">return</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>     <span class="comment">// simple-type-specifier</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>   <span class="keywordflow">case</span> tok::kw_char:</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>   <span class="keywordflow">case</span> tok::kw_wchar_t:</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>   <span class="keywordflow">case</span> tok::kw_char16_t:</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>   <span class="keywordflow">case</span> tok::kw_char32_t:</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>   <span class="keywordflow">case</span> tok::kw_bool:</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>   <span class="keywordflow">case</span> tok::kw_short:</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>   <span class="keywordflow">case</span> tok::kw_int:</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>   <span class="keywordflow">case</span> tok::kw_long:</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>   <span class="keywordflow">case</span> tok::kw___int64:</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>   <span class="keywordflow">case</span> tok::kw___int128:</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>   <span class="keywordflow">case</span> tok::kw_signed:</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>   <span class="keywordflow">case</span> tok::kw_unsigned:</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>   <span class="keywordflow">case</span> tok::kw_half:</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>   <span class="keywordflow">case</span> tok::kw_float:</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>   <span class="keywordflow">case</span> tok::kw_double:</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>   <span class="keywordflow">case</span> tok::kw_void:</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>   <span class="keywordflow">case</span> tok::kw___unknown_anytype:</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> </div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>   <span class="keywordflow">case</span> tok::kw_auto:</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().CPlusPlus11;</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> </div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>   <span class="keywordflow">case</span> tok::kw__Atomic:</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>     <span class="comment">// "_Atomic foo"</span></div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren);</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> </div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>   }</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> }</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> <span class="comment"></span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> <span class="comment">/// [GNU] typeof-specifier:</span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> <span class="comment">///         'typeof' '(' expressions ')'</span></div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> <span class="comment">///         'typeof' '(' type-name ')'</span></div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="comment"></span>Parser::TPResult Parser::TryParseTypeofSpecifier() {</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_typeof) && <span class="stringliteral">"Expected 'typeof'!"</span>);</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>   <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> </div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren) && <span class="stringliteral">"Expected '('"</span>);</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>   <span class="comment">// Parse through the parens after 'typeof'.</span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>   ConsumeParen();</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>))</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>     <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> </div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>   <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> }</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span> <span class="comment"></span></div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> <span class="comment">/// [ObjC] protocol-qualifiers:</span></div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> <span class="comment">////         '<' identifier-list '>'</span></div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> <span class="comment"></span>Parser::TPResult Parser::TryParseProtocolQualifiers() {</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::less) && <span class="stringliteral">"Expected '<' for qualifier list"</span>);</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>   <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>   <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::identifier))</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>     </div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma)) {</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>       <span class="keywordflow">continue</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>     </div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::greater)) {</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>       <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>     }</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>   } <span class="keywordflow">while</span> (<span class="keyword">false</span>);</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>   </div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>   <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> }</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> <span class="comment"></span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="comment">/// isCXXFunctionDeclarator - Disambiguates between a function declarator or</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> <span class="comment">/// a constructor-style initializer, when parsing declaration statements.</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="comment">/// Returns true for function declarator and false for constructor-style</span></div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> <span class="comment">/// initializer.</span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> <span class="comment">/// If during the disambiguation process a parsing error is encountered,</span></div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> <span class="comment">/// the function returns true to let the declaration parsing code handle it.</span></div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> <span class="comment">/// '(' parameter-declaration-clause ')' cv-qualifier-seq[opt]</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> <span class="comment">///         exception-specification[opt]</span></div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="comment"></span><span class="keywordtype">bool</span> Parser::isCXXFunctionDeclarator(<span class="keywordtype">bool</span> *IsAmbiguous) {</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> </div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>   <span class="comment">// C++ 8.2p1:</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>   <span class="comment">// The ambiguity arising from the similarity between a function-style cast and</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>   <span class="comment">// a declaration mentioned in 6.8 can also occur in the context of a</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>   <span class="comment">// declaration. In that context, the choice is between a function declaration</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>   <span class="comment">// with a redundant set of parentheses around a parameter name and an object</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>   <span class="comment">// declaration with a function-style cast as the initializer. Just as for the</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>   <span class="comment">// ambiguities mentioned in 6.8, the resolution is to consider any construct</span></div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>   <span class="comment">// that could possibly be a declaration a declaration.</span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> </div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>   TentativeParsingAction PA(*<span class="keyword">this</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>   ConsumeParen();</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>   <span class="keywordtype">bool</span> InvalidAsDeclaration = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>   TPResult TPR = TryParseParameterDeclarationClause(&InvalidAsDeclaration);</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>   <span class="keywordflow">if</span> (TPR == TPResult::Ambiguous()) {</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</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="l01611"></a><span class="lineno"> 1611</span>       TPR = TPResult::False();</div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Next = <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>();</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>       <span class="keywordflow">if</span> (Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::amp) || Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ampamp) ||</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>           Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_const) || Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_volatile) ||</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>           Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_throw) || Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_noexcept) ||</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>           Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_square) || isCXX11VirtSpecifier(Next) ||</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>           Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_brace) || Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_try) ||</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>           Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal) || Next.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::arrow))</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>         <span class="comment">// The next token cannot appear after a constructor-style initializer,</span></div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>         <span class="comment">// and can appear next in a function definition. This must be a function</span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>         <span class="comment">// declarator.</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>         TPR = TPResult::True();</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (InvalidAsDeclaration)</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>         <span class="comment">// Use the absence of 'typename' as a tie-breaker.</span></div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>         TPR = TPResult::False();</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> </div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>   PA.Revert();</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> </div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>   <span class="keywordflow">if</span> (IsAmbiguous && TPR == TPResult::Ambiguous())</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>     *IsAmbiguous = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> </div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>   <span class="comment">// In case of an error, let the declaration parsing code handle it.</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>   <span class="keywordflow">return</span> TPR != TPResult::False();</div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> }</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> <span class="comment"></span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> <span class="comment">/// parameter-declaration-clause:</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="comment">///   parameter-declaration-list[opt] '...'[opt]</span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> <span class="comment">///   parameter-declaration-list ',' '...'</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> <span class="comment">/// parameter-declaration-list:</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> <span class="comment">///   parameter-declaration</span></div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> <span class="comment">///   parameter-declaration-list ',' parameter-declaration</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="comment">/// parameter-declaration:</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> <span class="comment">///   attribute-specifier-seq[opt] decl-specifier-seq declarator attributes[opt]</span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> <span class="comment">///   attribute-specifier-seq[opt] decl-specifier-seq declarator attributes[opt]</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="comment">///     '=' assignment-expression</span></div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="comment">///   attribute-specifier-seq[opt] decl-specifier-seq abstract-declarator[opt]</span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> <span class="comment">///     attributes[opt]</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> <span class="comment">///   attribute-specifier-seq[opt] decl-specifier-seq abstract-declarator[opt]</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="comment">///     attributes[opt] '=' assignment-expression</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="comment"></span>Parser::TPResult</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> Parser::TryParseParameterDeclarationClause(<span class="keywordtype">bool</span> *InvalidAsDeclaration,</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>                                            <span class="keywordtype">bool</span> VersusTemplateArgument) {</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> </div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren))</div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>     <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> </div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>   <span class="comment">//   parameter-declaration-list[opt] '...'[opt]</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>   <span class="comment">//   parameter-declaration-list ',' '...'</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>   <span class="comment">// parameter-declaration-list:</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>   <span class="comment">//   parameter-declaration</span></div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>   <span class="comment">//   parameter-declaration-list ',' parameter-declaration</span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>   <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>     <span class="comment">// '...'[opt]</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ellipsis)) {</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren))</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>         <span class="keywordflow">return</span> TPResult::True(); <span class="comment">// '...)' is a sign of a function declarator.</span></div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>         <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>     }</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> </div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>     <span class="comment">// An attribute-specifier-seq here is a sign of a function declarator.</span></div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>     <span class="keywordflow">if</span> (isCXX11AttributeSpecifier(<span class="comment">/*Disambiguate*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>                                   <span class="comment">/*OuterMightBeMessageSend*/</span><span class="keyword">true</span>))</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>       <span class="keywordflow">return</span> TPResult::True();</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>     <a class="code" href="classclang_1_1ParsedAttributes.html">ParsedAttributes</a> attrs(AttrFactory);</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>     MaybeParseMicrosoftAttributes(attrs);</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> </div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>     <span class="comment">// decl-specifier-seq</span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>     <span class="comment">// A parameter-declaration's initializer must be preceded by an '=', so</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>     <span class="comment">// decl-specifier-seq '{' is not a parameter in C++11.</span></div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>     TPResult TPR = isCXXDeclarationSpecifier(TPResult::False(),</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>                                              InvalidAsDeclaration);</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> </div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>     <span class="keywordflow">if</span> (VersusTemplateArgument && TPR == TPResult::True()) {</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>       <span class="comment">// Consume the decl-specifier-seq. We have to look past it, since a</span></div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>       <span class="comment">// type-id might appear here in a template argument.</span></div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>       <span class="keywordtype">bool</span> SeenType = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>       <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>         SeenType |= isCXXDeclarationSpecifierAType();</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>         <span class="keywordflow">if</span> (TryConsumeDeclarationSpecifier() == TPResult::Error())</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>           <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> </div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>         <span class="comment">// If we see a parameter name, this can't be a template argument.</span></div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>         <span class="keywordflow">if</span> (SeenType && Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier))</div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>           <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> </div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>         TPR = isCXXDeclarationSpecifier(TPResult::False(),</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>                                         InvalidAsDeclaration);</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>         <span class="keywordflow">if</span> (TPR == TPResult::Error())</div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>           <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>       } <span class="keywordflow">while</span> (TPR != TPResult::False());</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (TPR == TPResult::Ambiguous()) {</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>       <span class="comment">// Disambiguate what follows the decl-specifier.</span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>       <span class="keywordflow">if</span> (TryConsumeDeclarationSpecifier() == TPResult::Error())</div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>     } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>       <span class="keywordflow">return</span> TPR;</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="comment">// declarator</span></div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>     <span class="comment">// abstract-declarator[opt]</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>     TPR = TryParseDeclarator(<span class="keyword">true</span><span class="comment">/*mayBeAbstract*/</span>);</div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>     <span class="keywordflow">if</span> (TPR != TPResult::Ambiguous())</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>       <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> </div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>     <span class="comment">// [GNU] attributes[opt]</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___attribute))</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>       <span class="keywordflow">return</span> TPResult::True();</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> </div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>     <span class="comment">// If we're disambiguating a template argument in a default argument in</span></div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>     <span class="comment">// a class definition versus a parameter declaration, an '=' here</span></div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>     <span class="comment">// disambiguates the parse one way or the other.</span></div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>     <span class="comment">// If this is a parameter, it must have a default argument because</span></div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>     <span class="comment">//   (a) the previous parameter did, and</span></div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>     <span class="comment">//   (b) this must be the first declaration of the function, so we can't</span></div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>     <span class="comment">//       inherit any default arguments from elsewhere.</span></div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>     <span class="comment">// If we see an ')', then we've reached the end of a</span></div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>     <span class="comment">// parameter-declaration-clause, and the last param is missing its default</span></div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>     <span class="comment">// argument.</span></div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>     <span class="keywordflow">if</span> (VersusTemplateArgument)</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>       <span class="keywordflow">return</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren)) ? TPResult::True()</div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>                                                           : TPResult::False();</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> </div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal)) {</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>       <span class="comment">// '=' assignment-expression</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>       <span class="comment">// Parse through assignment-expression.</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>       <span class="comment">// FIXME: assignment-expression may contain an unparenthesized comma.</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>       <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::comma, tok::r_paren, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a> | <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea7eadfbdad0b0f32d010aa026f79f44d9" title="Stop skipping at specified token, but don't skip the token itself.">StopBeforeMatch</a>))</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>     }</div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> </div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ellipsis)) {</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren))</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>         <span class="keywordflow">return</span> TPResult::True(); <span class="comment">// '...)' is a sign of a function declarator.</span></div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>         <span class="keywordflow">return</span> TPResult::False();</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>     }</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> </div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::comma))</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>(); <span class="comment">// the comma.</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="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> }</div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> <span class="comment"></span></div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> <span class="comment">/// TryParseFunctionDeclarator - We parsed a '(' and we want to try to continue</span></div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> <span class="comment">/// parsing as a function declarator.</span></div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> <span class="comment">/// If TryParseFunctionDeclarator fully parsed the function declarator, it will</span></div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <span class="comment">/// return TPResult::Ambiguous(), otherwise it will return either False() or</span></div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> <span class="comment">/// Error().</span></div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="comment">/// '(' parameter-declaration-clause ')' cv-qualifier-seq[opt]</span></div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> <span class="comment">///         exception-specification[opt]</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">/// exception-specification:</span></div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> <span class="comment">///   'throw' '(' type-id-list[opt] ')'</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"></span>Parser::TPResult Parser::TryParseFunctionDeclarator() {</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> </div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>   <span class="comment">// The '(' is already parsed.</span></div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> </div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>   TPResult TPR = TryParseParameterDeclarationClause();</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>   <span class="keywordflow">if</span> (TPR == TPResult::Ambiguous() && Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren))</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>     TPR = TPResult::False();</div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span> </div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>   <span class="keywordflow">if</span> (TPR == TPResult::False() || TPR == TPResult::Error())</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>     <span class="keywordflow">return</span> TPR;</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> </div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>   <span class="comment">// Parse through the parens.</span></div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>))</div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>     <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> </div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>   <span class="comment">// cv-qualifier-seq</span></div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>   <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_const)    ||</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>          Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_volatile) ||</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>          Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_restrict)   )</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> </div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>   <span class="comment">// ref-qualifier[opt]</span></div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::amp) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::ampamp))</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>   </div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>   <span class="comment">// exception-specification</span></div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_throw)) {</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_paren))</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> </div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>     <span class="comment">// Parse through the parens after 'throw'.</span></div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>     ConsumeParen();</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>))</div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>       <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>   }</div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_noexcept)) {</div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>     <span class="comment">// Possibly an expression as well.</span></div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>       <span class="comment">// Find the matching rparen.</span></div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>       ConsumeParen();</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>       <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>))</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>         <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>     }</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>   }</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> </div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>   <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> }</div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> <span class="comment"></span></div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> <span class="comment">/// '[' constant-expression[opt] ']'</span></div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> <span class="comment"></span>Parser::TPResult Parser::TryParseBracketDeclarator() {</div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>   ConsumeBracket();</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_square, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>))</div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>     <span class="keywordflow">return</span> TPResult::Error();</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span> </div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>   <span class="keywordflow">return</span> TPResult::Ambiguous();</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</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/ParseTentative_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTentative_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTentative_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseTentative_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,562 @@
+<!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: ParseTentative.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_58f62bc003e869f0dc8400deafe0ffa1.html">Parse</a></li><li class="navelem"><a class="el" href="dir_0aeab4227b111c06862263ff09b555c2.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ParseTentative.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ParseTentative_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/Parse/Release+Asserts/ParseTentative.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Parse/Release+Asserts/ParseTentative.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  ParseTentative.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Parse/Parser.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OperatorPrecedence.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/CodeCompletionHandler.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../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="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/include/llvm/Support/SMLoc.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Parse/ParseDiagnostic.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticParseKinds.inc \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ParsedTemplate.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/Parse/../../include/clang/Parse/Parser.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/tools/clang/lib/Parse/../../include/clang/Basic/OpenMPKinds.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/StringRef.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/Support/type_traits.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/DataTypes.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/Parse/../../include/clang/Basic/OpenMPKinds.def:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OperatorPrecedence.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/Parse/../../include/clang/Basic/TokenKinds.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/Parse/../../include/clang/Basic/TokenKinds.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/Parse/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/CodeCompletionHandler.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/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.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/Parse/../../include/clang/Basic/Builtins.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/Parse/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/include/llvm/ADT/None.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/Parse/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticIDs.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/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/include/llvm/Support/Compiler.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/Config/llvm-config.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/Parse/../../include/clang/Basic/DiagnosticOptions.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/Parse/../../include/clang/Basic/DiagnosticOptions.def:</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/Parse/../../include/clang/Basic/SourceLocation.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/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.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/AlignOf.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/MathExtras.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/SwapByteOrder.h:</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.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/Parse/../../include/clang/Basic/IdentifierTable.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/Parse/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.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/include/llvm/ADT/StringMap.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/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h:</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LangOptions.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/Parse/../../include/clang/Basic/CommentOptions.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/Parse/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/VersionTuple.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/ADT/Optional.h:</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../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="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../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="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h:</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h:</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../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="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TemplateKinds.h:</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h:</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h:</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h:</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h:</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/DeclSpec.h:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AttributeList.h:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Ownership.h:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AttrParsedAttrList.inc:</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Sema.h:</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> </div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> </div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h:</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/MangleNumberingContext.h:</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/NSAPI.h:</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/AnalysisBasedWarnings.h:</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ExternalSemaSource.h:</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/TypoCorrection.h:</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/Weak.h:</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h:</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/IdentifierResolver.h:</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/LocInfoType.h:</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ObjCMethodList.h:</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ScopeInfo.h:</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h:</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h:</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h:</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> /home/tstellar/llvm/include/llvm/Support/SMLoc.h:</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> </div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h:</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Parse/ParseDiagnostic.h:</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Basic/DiagnosticParseKinds.inc:</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> /home/tstellar/llvm/tools/clang/lib/Parse/../../include/clang/Sema/ParsedTemplate.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/Parse_2Parser_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Parse_2Parser_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Parse_2Parser_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Parse_2Parser_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,2118 @@
+<!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: Parser.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_58f62bc003e869f0dc8400deafe0ffa1.html">Parse</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Parse/Parser.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Parse_2Parser_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">//===--- Parser.cpp - C Language Family Parser ----------------------------===//</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 Parser interfaces.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="Parse_2Parser_8h.html">clang/Parse/Parser.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="ParsePragma_8h.html">ParsePragma.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="RAIIObjectsForParser_8h.html">RAIIObjectsForParser.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="ASTConsumer_8h.html">clang/AST/ASTConsumer.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="DeclTemplate_8h.html" title="Defines the C++ template declaration subclasses.">clang/AST/DeclTemplate.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="ParseDiagnostic_8h.html">clang/Parse/ParseDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="DeclSpec_8h.html" title="This file defines the classes used to store parsed information about declaration-specifiers and decla...">clang/Sema/DeclSpec.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="ParsedTemplate_8h.html">clang/Sema/ParsedTemplate.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="Scope_8h.html">clang/Sema/Scope.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keyword">namespace </span>{<span class="comment"></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">/// \brief A comment handler that passes comments found by the preprocessor</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">/// to the parser action.</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment"></span><span class="keyword">class </span>ActionCommentHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1CommentHandler.html" title="Abstract base class that describes a handler that will receive source ranges for each of the comments...">CommentHandler</a> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>   <span class="keyword">explicit</span> ActionCommentHandler(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) : S(S) { }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> HandleComment(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Comment) {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>.<a class="code" href="classclang_1_1Sema.html#a2fade273f23b5b06324c4b180192ba06">ActOnComment</a>(Comment);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   }</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> };</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> } <span class="comment">// end anonymous namespace</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Parser::getSEHExceptKeyword() {</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <span class="comment">// __except is accepted as a (contextual) keyword </span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   <span class="keywordflow">if</span> (!Ident__except && (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().MicrosoftExt || <a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().Borland))</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>     Ident__except = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"__except"</span>);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="keywordflow">return</span> Ident__except;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> }</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a3903470268b4834c6ac86687121d1948">   51</a></span> <a class="code" href="classclang_1_1Parser.html#a3903470268b4834c6ac86687121d1948">Parser::Parser</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &pp, <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &actions, <span class="keywordtype">bool</span> skipFunctionBodies)</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   : PP(pp), Actions(actions), Diags(PP.getDiagnostics()),</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     GreaterThanIsOperator(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>), ColonIsSacred(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     InMessageExpression(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), TemplateParameterDepth(0),</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     ParsingInObjCContainer(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   SkipFunctionBodies = pp.<a class="code" href="classclang_1_1Preprocessor.html#a3d125fddd1ffa39b83b9e880dcd758ac" title="Determine if we are performing code completion.">isCodeCompletionEnabled</a>() || skipFunctionBodies;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   Tok.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   Actions.CurScope = 0;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   NumCachedScopes = 0;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   ParenCount = BracketCount = BraceCount = 0;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   CurParsedObjCImpl = 0;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="comment">// Add #pragma handlers. These are removed and destroyed in the</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="comment">// destructor.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   AlignHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaAlignHandler.html">PragmaAlignHandler</a>());</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(AlignHandler.get());</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>   GCCVisibilityHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaGCCVisibilityHandler.html">PragmaGCCVisibilityHandler</a>());</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"GCC"</span>, GCCVisibilityHandler.get());</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   OptionsHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaOptionsHandler.html">PragmaOptionsHandler</a>());</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(OptionsHandler.get());</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>   PackHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaPackHandler.html">PragmaPackHandler</a>());</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(PackHandler.get());</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   MSStructHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaMSStructHandler.html">PragmaMSStructHandler</a>());</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(MSStructHandler.get());</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>   UnusedHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1Parser.html#a2f79ece710a98a49b81e7f43b697c833">PragmaUnusedHandler</a>());</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(UnusedHandler.get());</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>   WeakHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaWeakHandler.html">PragmaWeakHandler</a>());</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(WeakHandler.get());</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>   RedefineExtnameHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaRedefineExtnameHandler.html">PragmaRedefineExtnameHandler</a>());</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(RedefineExtnameHandler.get());</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   FPContractHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaFPContractHandler.html">PragmaFPContractHandler</a>());</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"STDC"</span>, FPContractHandler.get());</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>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().OpenCL) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>     OpenCLExtensionHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaOpenCLExtensionHandler.html">PragmaOpenCLExtensionHandler</a>());</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"OPENCL"</span>, OpenCLExtensionHandler.get());</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>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"OPENCL"</span>, FPContractHandler.get());</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> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().OpenMP)</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     OpenMPHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaOpenMPHandler.html">PragmaOpenMPHandler</a>());</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>     OpenMPHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaNoOpenMPHandler.html">PragmaNoOpenMPHandler</a>());</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(OpenMPHandler.get());</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().MicrosoftExt) {</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     MSCommentHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaCommentHandler.html" title="PragmaCommentHandler - "\#pragma comment ...".">PragmaCommentHandler</a>(actions));</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(MSCommentHandler.get());</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>     MSDetectMismatchHandler.reset(<span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaDetectMismatchHandler.html">PragmaDetectMismatchHandler</a>(actions));</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(MSDetectMismatchHandler.get());</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>   CommentSemaHandler.reset(<span class="keyword">new</span> ActionCommentHandler(actions));</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a5483e047febc7601c420171bcf599f78" title="Add the specified comment handler to the preprocessor.">addCommentHandler</a>(CommentSemaHandler.get());</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>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a077c476a99d15970cbd43e4d67047ec3" title="Set the code completion handler to the given object.">setCodeCompletionHandler</a>(*<span class="keyword">this</span>);</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> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">  118</a></span> <a class="code" href="classclang_1_1DiagnosticBuilder.html" title="A little helper class used to produce diagnostics.">DiagnosticBuilder</a> <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Parser::Diag</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="keywordtype">unsigned</span> DiagID) {</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   <span class="keywordflow">return</span> Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Loc, DiagID);</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> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a248bb1c3480050a79edff88a71859037">  122</a></span> <a class="code" href="classclang_1_1DiagnosticBuilder.html" title="A little helper class used to produce diagnostics.">DiagnosticBuilder</a> <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Parser::Diag</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Tok, <span class="keywordtype">unsigned</span> DiagID) {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</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>(), DiagID);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> }</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment"></span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">/// \brief Emits a diagnostic suggesting parentheses surrounding a</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">/// given range.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">/// \param Loc The location where we'll emit the diagnostic.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">/// \param DK The kind of diagnostic to emit.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">/// \param ParenRange Source range enclosing code that should be parenthesized.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment"></span><span class="keywordtype">void</span> Parser::SuggestParentheses(<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="keywordtype">unsigned</span> DK,</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>                                 <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> ParenRange) {</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</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> EndLoc = PP.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</a>(ParenRange.<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>());</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   <span class="keywordflow">if</span> (!ParenRange.<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>().<a class="code" href="classclang_1_1SourceLocation.html#a8317aa72ddfd4e2221603217927070cc">isFileID</a>() || EndLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>()) {</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>     <span class="comment">// We can't display the parentheses, so just dig the</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>     <span class="comment">// warning/error and return.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Loc, DK);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   }</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Loc, DK)</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>     << <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>(ParenRange.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(), <span class="stringliteral">"("</span>)</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>     << <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>(EndLoc, <span class="stringliteral">")"</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> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="Parse_2Parser_8cpp.html#a03ca1ffc1678830d8fbb0057ce9bc6d5">  147</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Parse_2Parser_8cpp.html#a03ca1ffc1678830d8fbb0057ce9bc6d5">IsCommonTypo</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> ExpectedTok, <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   <span class="keywordflow">switch</span> (ExpectedTok) {</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   <span class="keywordflow">case</span> tok::semi:</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="keywordflow">return</span> Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::colon) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma); <span class="comment">// : or , for ;</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>   <span class="keywordflow">default</span>: <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   }</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> }</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment"></span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment">/// ExpectAndConsume - The parser expects that 'ExpectedTok' is next in the</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">/// input.  If so, it is consumed and false is returned.</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">/// If the input is malformed, this emits the specified diagnostic.  Next, if</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">/// SkipToTok is specified, it calls SkipUntil(SkipToTok).  Finally, true is</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">/// returned.</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment"></span><span class="keywordtype">bool</span> Parser::ExpectAndConsume(<a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a> ExpectedTok, <span class="keywordtype">unsigned</span> DiagID,</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>                               <span class="keyword">const</span> <span class="keywordtype">char</span> *Msg, <a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a> SkipToTok) {</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(ExpectedTok) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion)) {</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>     ConsumeAnyToken();</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   }</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="comment">// Detect common single-character typos and resume.</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   <span class="keywordflow">if</span> (<a class="code" href="Parse_2Parser_8cpp.html#a03ca1ffc1678830d8fbb0057ce9bc6d5">IsCommonTypo</a>(ExpectedTok, Tok)) {</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</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 = 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="l00171"></a><span class="lineno">  171</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Loc, DiagID)</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>       << Msg</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>       << <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(Loc),</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>                                       <a class="code" href="namespaceclang_1_1tok.html#a44add8c57b584c0f73549f5b3b649ee8" title="Determines the spelling of simple punctuation tokens like '!' or '', and returns NULL for literal and...">getTokenSimpleSpelling</a>(ExpectedTok));</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     ConsumeAnyToken();</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     <span class="comment">// Pretend there wasn't a problem.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   }</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *Spelling = 0;</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</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> EndLoc = PP.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</a>(PrevTokLocation);</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   <span class="keywordflow">if</span> (EndLoc.<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="l00184"></a><span class="lineno">  184</span>       (Spelling = <a class="code" href="namespaceclang_1_1tok.html#a44add8c57b584c0f73549f5b3b649ee8" title="Determines the spelling of simple punctuation tokens like '!' or '', and returns NULL for literal and...">tok::getTokenSimpleSpelling</a>(ExpectedTok))) {</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>     <span class="comment">// Show what code to insert to fix this problem.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(EndLoc, DiagID)</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>       << Msg</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>       << <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>(EndLoc, Spelling);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, DiagID) << Msg;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   <span class="keywordflow">if</span> (SkipToTok != tok::unknown)</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>     <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(SkipToTok, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>);</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> }</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="keywordtype">bool</span> Parser::ExpectAndConsumeSemi(<span class="keywordtype">unsigned</span> DiagID) {</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::semi) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion)) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>   }</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>   </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>   <span class="keywordflow">if</span> ((Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_square)) && </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>       <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::semi)) {</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_extraneous_token_before_semi)</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>       << PP.<a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(Tok)</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>       << <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</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="l00208"></a><span class="lineno">  208</span>     ConsumeAnyToken(); <span class="comment">// The ')' or ']'.</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>(); <span class="comment">// The ';'.</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>   }</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>   </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>   <span class="keywordflow">return</span> ExpectAndConsume(tok::semi, DiagID);</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> }</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="keywordtype">void</span> Parser::ConsumeExtraSemi(ExtraSemiKind <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, <span class="keywordtype">unsigned</span> TST) {</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   <span class="keywordflow">if</span> (!Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::semi)) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>   <span class="keywordtype">bool</span> HadMultipleSemis = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</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 = 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="l00221"></a><span class="lineno">  221</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> EndLoc = 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="l00222"></a><span class="lineno">  222</span>   <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <span class="keywordflow">while</span> ((Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::semi) && !Tok.<a class="code" href="classclang_1_1Token.html#a895009ede74790b61cf636fd7e498d44">isAtStartOfLine</a>())) {</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     HadMultipleSemis = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     EndLoc = 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="l00227"></a><span class="lineno">  227</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</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>   <span class="comment">// C++11 allows extra semicolons at namespace scope, but not in any of the</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>   <span class="comment">// other contexts.</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   <span class="keywordflow">if</span> (Kind == OutsideFunction && <a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a>) {</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bba306744f6eb6433073e27523a5ed63184">CPlusPlus11</a>)</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(StartLoc, diag::warn_cxx98_compat_top_level_semi)</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>           << <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(StartLoc, EndLoc));</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(StartLoc, diag::ext_extra_semi_cxx11)</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>           << <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(StartLoc, EndLoc));</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   }</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>   <span class="keywordflow">if</span> (Kind != AfterMemberFunctionDefinition || HadMultipleSemis)</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(StartLoc, diag::ext_extra_semi)</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>         << Kind << <a class="code" href="classclang_1_1DeclSpec.html#aab0f17bd394c2bd409a510ef6c57b965" title="Turn a type-specifier-type into a string like "_Bool" or "union".">DeclSpec::getSpecifierName</a>((<a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13" title="Specifies the kind of type.">DeclSpec::TST</a>)TST)</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>         << <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(StartLoc, EndLoc));</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     <span class="comment">// A single semicolon is valid after a member function definition.</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(StartLoc, diag::warn_extra_semi_after_mem_fn_def)</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>       << <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(StartLoc, EndLoc));</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> }</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">// Error recovery.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno"><a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">  256</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(<a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdce" title="Control flags for SkipUntil functions.">Parser::SkipUntilFlags</a> L, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdce" title="Control flags for SkipUntil functions.">Parser::SkipUntilFlags</a> R) {</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>   <span class="keywordflow">return</span> (static_cast<unsigned>(L) & static_cast<unsigned>(R)) != 0;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> }</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment"></span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment">/// SkipUntil - Read tokens until we get to the specified token, then consume</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment">/// it (unless no flag StopBeforeMatch).  Because we cannot guarantee that the</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">/// token will ever occur, this skips to the next token, or to some likely</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">/// good stopping point.  If StopAtSemi is true, skipping will stop at a ';'</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> <span class="comment">/// character.</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">/// If SkipUntil finds the specified token, it returns true, otherwise it</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">/// returns false.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#ad07c53f4597e0e32f896d8ef36a4942f">  268</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">Parser::SkipUntil</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<tok::TokenKind></a> Toks, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdce" title="Control flags for SkipUntil functions.">SkipUntilFlags</a> Flags) {</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>   <span class="comment">// We always want this function to skip at least one token if the first token</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>   <span class="comment">// isn't T and if not at EOF.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>   <span class="keywordtype">bool</span> isFirstTokenSkipped = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>   <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>     <span class="comment">// If we found one of the tokens, stop and return true.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, NumToks = Toks.size(); i != NumToks; ++i) {</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(Toks[i])) {</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>         <span class="keywordflow">if</span> (<a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(Flags, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea7eadfbdad0b0f32d010aa026f79f44d9" title="Stop skipping at specified token, but don't skip the token itself.">StopBeforeMatch</a>)) {</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>           <span class="comment">// Noop, don't consume the token.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>         } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>           ConsumeAnyToken();</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>         }</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>         <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>     <span class="comment">// Important special case: The caller has given up and just wants us to</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>     <span class="comment">// skip the rest of the file. Do this without recursing, since we can</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>     <span class="comment">// get here precisely because the caller detected too much recursion.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>     <span class="keywordflow">if</span> (Toks.size() == 1 && Toks[0] == <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a> &&</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>         !<a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(Flags, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>) &&</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>         !<a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(Flags, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea8a0938f86f63e2f013f91dd709f13d80" title="Stop at code completion.">StopAtCodeCompletion</a>)) {</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>       <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>() != <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>)</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>         ConsumeAnyToken();</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>       <span class="keywordflow">return</span> <span class="keyword">true</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>     <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>:</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>       <span class="comment">// Ran out of tokens.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>         </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>     <span class="keywordflow">case</span> tok::code_completion:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>       <span class="keywordflow">if</span> (!<a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(Flags, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea8a0938f86f63e2f013f91dd709f13d80" title="Stop at code completion.">StopAtCodeCompletion</a>))</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>         <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>         </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>     <span class="keywordflow">case</span> tok::l_paren:</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>       <span class="comment">// Recursively skip properly-nested parens.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>       ConsumeParen();</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>       <span class="keywordflow">if</span> (<a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(Flags, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea8a0938f86f63e2f013f91dd709f13d80" title="Stop at code completion.">StopAtCodeCompletion</a>))</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>         <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea8a0938f86f63e2f013f91dd709f13d80" title="Stop at code completion.">StopAtCodeCompletion</a>);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>         <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren);</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>     <span class="keywordflow">case</span> tok::l_square:</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>       <span class="comment">// Recursively skip properly-nested square brackets.</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>       ConsumeBracket();</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>       <span class="keywordflow">if</span> (<a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(Flags, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea8a0938f86f63e2f013f91dd709f13d80" title="Stop at code completion.">StopAtCodeCompletion</a>))</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>         <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_square, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea8a0938f86f63e2f013f91dd709f13d80" title="Stop at code completion.">StopAtCodeCompletion</a>);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>         <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_square);</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>     <span class="keywordflow">case</span> tok::l_brace:</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>       <span class="comment">// Recursively skip properly-nested braces.</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>       ConsumeBrace();</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>       <span class="keywordflow">if</span> (<a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(Flags, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea8a0938f86f63e2f013f91dd709f13d80" title="Stop at code completion.">StopAtCodeCompletion</a>))</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>         <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_brace, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea8a0938f86f63e2f013f91dd709f13d80" title="Stop at code completion.">StopAtCodeCompletion</a>);</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>         <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_brace);</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>       <span class="keywordflow">break</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>     <span class="comment">// Okay, we found a ']' or '}' or ')', which we think should be balanced.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>     <span class="comment">// Since the user wasn't looking for this token (if they were, it would</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>     <span class="comment">// already be handled), this isn't balanced.  If there is a LHS token at a</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>     <span class="comment">// higher level, we will assume that this matches the unbalanced token</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>     <span class="comment">// and return it.  Otherwise, this is a spurious RHS token, which we skip.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>     <span class="keywordflow">case</span> tok::r_paren:</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>       <span class="keywordflow">if</span> (ParenCount && !isFirstTokenSkipped)</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;  <span class="comment">// Matches something.</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>       ConsumeParen();</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     <span class="keywordflow">case</span> tok::r_square:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>       <span class="keywordflow">if</span> (BracketCount && !isFirstTokenSkipped)</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;  <span class="comment">// Matches something.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>       ConsumeBracket();</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>     <span class="keywordflow">case</span> tok::r_brace:</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>       <span class="keywordflow">if</span> (BraceCount && !isFirstTokenSkipped)</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;  <span class="comment">// Matches something.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>       ConsumeBrace();</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>     <span class="keywordflow">case</span> tok::string_literal:</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>     <span class="keywordflow">case</span> tok::wide_string_literal:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>     <span class="keywordflow">case</span> tok::utf8_string_literal:</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     <span class="keywordflow">case</span> tok::utf16_string_literal:</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>     <span class="keywordflow">case</span> tok::utf32_string_literal:</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>       ConsumeStringToken();</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>       <span class="keywordflow">break</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="keywordflow">case</span> tok::semi:</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>       <span class="keywordflow">if</span> (<a class="code" href="Parse_2Parser_8cpp.html#aa0484a3310f95bb98857980f5adff572">HasFlagsSet</a>(Flags, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a>))</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>       <span class="comment">// FALL THROUGH.</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>       <span class="comment">// Skip this token.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>     }</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>     isFirstTokenSkipped = <span class="keyword">false</span>;</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> }</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">// Scope manipulation</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment"></span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">/// EnterScope - Start a new scope.</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a4e30ebcbb7b386b0e280fd4a736262c0">  378</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Parser.html#a4e30ebcbb7b386b0e280fd4a736262c0" title="EnterScope - Start a new scope.">Parser::EnterScope</a>(<span class="keywordtype">unsigned</span> ScopeFlags) {</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>   <span class="keywordflow">if</span> (NumCachedScopes) {</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>     <a class="code" href="classclang_1_1Scope.html">Scope</a> *N = ScopeCache[--NumCachedScopes];</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>     N-><a class="code" href="classclang_1_1Scope.html#a0a6ad6d44d2f3579bf4f9884c87c1ef7">Init</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), ScopeFlags);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>     Actions.CurScope = N;</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>     Actions.CurScope = <span class="keyword">new</span> <a class="code" href="classclang_1_1Scope.html">Scope</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), ScopeFlags, Diags);</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> }</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment"></span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">/// ExitScope - Pop a scope off the scope stack.</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a9e72026947093d42147152058cda299a">  389</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Parser.html#a9e72026947093d42147152058cda299a" title="ExitScope - Pop a scope off the scope stack.">Parser::ExitScope</a>() {</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>   assert(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>() && <span class="stringliteral">"Scope imbalance!"</span>);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>   <span class="comment">// Inform the actions module that this scope is going away if there are any</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>   <span class="comment">// decls in it.</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>()->decl_empty())</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>     Actions.<a class="code" href="classclang_1_1Sema.html#a0d2fd02849114fa9c4c05c3d0d109905" title="Scope actions.">ActOnPopScope</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>(), <a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>());</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>   <a class="code" href="classclang_1_1Scope.html">Scope</a> *OldScope = <a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>();</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>   Actions.CurScope = OldScope-><a class="code" href="classclang_1_1Scope.html#a41a39e012b966ffcb2f05d41f4bdbb4b">getParent</a>();</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>   <span class="keywordflow">if</span> (NumCachedScopes == ScopeCacheSize)</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>     <span class="keyword">delete</span> OldScope;</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>     ScopeCache[NumCachedScopes++] = OldScope;</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="comment"></span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">/// Set the flags for the current scope to ScopeFlags. If ManageFlags is false,</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">/// this object does nothing.</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment"></span>Parser::ParseScopeFlags::ParseScopeFlags(<a class="code" href="classclang_1_1Parser.html">Parser</a> *Self, <span class="keywordtype">unsigned</span> ScopeFlags,</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>                                  <span class="keywordtype">bool</span> ManageFlags)</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>   : CurScope(ManageFlags ? Self->getCurScope() : 0) {</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   <span class="keywordflow">if</span> (CurScope) {</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>     OldFlags = CurScope->getFlags();</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>     CurScope->setFlags(ScopeFlags);</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>   }</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> }</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment"></span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">/// Restore the flags for the current scope to what they were before this</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">/// object overrode them.</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> <span class="comment"></span>Parser::ParseScopeFlags::~ParseScopeFlags() {</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   <span class="keywordflow">if</span> (CurScope)</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>     CurScope->setFlags(OldFlags);</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> </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">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment">// C99 6.9: External Definitions.</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a3e658b5917a93a3ef648050d060e3a93">  429</a></span> <a class="code" href="classclang_1_1Parser.html#a3e658b5917a93a3ef648050d060e3a93">Parser::~Parser</a>() {</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="comment">// If we still have scopes active, delete the scope tree.</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>   <span class="keyword">delete</span> <a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>();</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>   Actions.CurScope = 0;</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">// Free the scope cache.</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = NumCachedScopes; i != e; ++i)</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>     <span class="keyword">delete</span> ScopeCache[i];</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>   <span class="comment">// Remove the pragma handlers we installed.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(AlignHandler.get());</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   AlignHandler.reset();</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(<span class="stringliteral">"GCC"</span>, GCCVisibilityHandler.get());</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>   GCCVisibilityHandler.reset();</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(OptionsHandler.get());</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   OptionsHandler.reset();</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(PackHandler.get());</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>   PackHandler.reset();</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(MSStructHandler.get());</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>   MSStructHandler.reset();</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(UnusedHandler.get());</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>   UnusedHandler.reset();</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(WeakHandler.get());</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>   WeakHandler.reset();</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(RedefineExtnameHandler.get());</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>   RedefineExtnameHandler.reset();</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="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().OpenCL) {</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(<span class="stringliteral">"OPENCL"</span>, OpenCLExtensionHandler.get());</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>     OpenCLExtensionHandler.reset();</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(<span class="stringliteral">"OPENCL"</span>, FPContractHandler.get());</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>   }</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(OpenMPHandler.get());</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>   OpenMPHandler.reset();</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> </div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().MicrosoftExt) {</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(MSCommentHandler.get());</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>     MSCommentHandler.reset();</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(MSDetectMismatchHandler.get());</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>     MSDetectMismatchHandler.reset();</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>   }</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">RemovePragmaHandler</a>(<span class="stringliteral">"STDC"</span>, FPContractHandler.get());</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>   FPContractHandler.reset();</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>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5db8681454769ec85c21b8b6e879b" title="Remove the specified comment handler.">removeCommentHandler</a>(CommentSemaHandler.get());</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>   PP.<a class="code" href="classclang_1_1Preprocessor.html#ad5d9b3912e55741f7032128b440dec3d" title="Clear out the code completion handler.">clearCodeCompletionHandler</a>();</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>   assert(TemplateIds.empty() && <span class="stringliteral">"Still alive TemplateIdAnnotations around?"</span>);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">/// Initialize - Warm up the parser.</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#af6097ef57f99b2f8f84852738e64a8df">  483</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Parser.html#af6097ef57f99b2f8f84852738e64a8df">Parser::Initialize</a>() {</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>   <span class="comment">// Create the translation unit scope.  Install it as the current scope.</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>   assert(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>() == 0 && <span class="stringliteral">"A scope is already active?"</span>);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>   <a class="code" href="classclang_1_1Parser.html#a4e30ebcbb7b386b0e280fd4a736262c0" title="EnterScope - Start a new scope.">EnterScope</a>(<a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7af9dd922f0e23495a79fc93698d6775ff" title="This is a scope that can contain a declaration. Some scopes just contain loop constructs but don't co...">Scope::DeclScope</a>);</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   Actions.<a class="code" href="classclang_1_1Sema.html#a346c66282e124fbfb7139fbb02079050">ActOnTranslationUnitScope</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>());</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>   <span class="comment">// Initialization for Objective-C context sensitive keywords recognition.</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>   <span class="comment">// Referenced in Parser::ParseObjCTypeQualifierList.</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().ObjC1) {</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>     ObjCTypeQuals[objc_in] = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"in"</span>);</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>     ObjCTypeQuals[objc_out] = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"out"</span>);</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>     ObjCTypeQuals[objc_inout] = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"inout"</span>);</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>     ObjCTypeQuals[objc_oneway] = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"oneway"</span>);</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>     ObjCTypeQuals[objc_bycopy] = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"bycopy"</span>);</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>     ObjCTypeQuals[objc_byref] = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"byref"</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> </div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>   Ident_instancetype = 0;</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>   Ident_final = 0;</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>   Ident_sealed = 0;</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>   Ident_override = 0;</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>   Ident_super = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"super"</span>);</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().AltiVec) {</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>     Ident_vector = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"vector"</span>);</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>     Ident_pixel = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"pixel"</span>);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>     Ident_bool = &PP.<a class="code" href="classclang_1_1Preprocessor.html#a7770871c2bdcd43cfa195d5936c8e268">getIdentifierTable</a>().<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"bool"</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> </div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>   Ident_introduced = 0;</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>   Ident_deprecated = 0;</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>   Ident_obsoleted = 0;</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>   Ident_unavailable = 0;</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>   Ident__except = 0;</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>   Ident__exception_code = Ident__exception_info = Ident__abnormal_termination = 0;</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>   Ident___exception_code = Ident___exception_info = Ident___abnormal_termination = 0;</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>   Ident_GetExceptionCode = Ident_GetExceptionInfo = Ident_AbnormalTermination = 0;</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="keywordflow">if</span>(<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().Borland) {</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>     Ident__exception_info        = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"_exception_info"</span>);</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>     Ident___exception_info       = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"__exception_info"</span>);</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>     Ident_GetExceptionInfo       = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"GetExceptionInformation"</span>);</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>     Ident__exception_code        = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"_exception_code"</span>);</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>     Ident___exception_code       = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"__exception_code"</span>);</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>     Ident_GetExceptionCode       = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"GetExceptionCode"</span>);</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>     Ident__abnormal_termination  = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"_abnormal_termination"</span>);</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>     Ident___abnormal_termination = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"__abnormal_termination"</span>);</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>     Ident_AbnormalTermination    = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"AbnormalTermination"</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>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident__exception_code,diag::err_seh___except_block);</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident___exception_code,diag::err_seh___except_block);</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident_GetExceptionCode,diag::err_seh___except_block);</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident__exception_info,diag::err_seh___except_filter);</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident___exception_info,diag::err_seh___except_filter);</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident_GetExceptionInfo,diag::err_seh___except_filter);</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident__abnormal_termination,diag::err_seh___finally_block);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident___abnormal_termination,diag::err_seh___finally_block);</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79a533c218214bd3cd542a82aceb334d">SetPoisonReason</a>(Ident_AbnormalTermination,diag::err_seh___finally_block);</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>   }</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>   Actions.<a class="code" href="classclang_1_1Sema.html#a22548869c9a298b9558bd051608e2c2b" title="Perform initialization that occurs after the parser has been initialized but before it parses anythin...">Initialize</a>();</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> </div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>   <span class="comment">// Prime the lexer look-ahead.</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</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> <span class="keyword">namespace </span>{<span class="comment"></span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment">  /// \brief RAIIObject to destroy the contents of a SmallVector of</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">  /// TemplateIdAnnotation pointers and clear the vector.</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment"></span>  <span class="keyword">class </span>DestroyTemplateIdAnnotationsRAIIObj {</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>     <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<TemplateIdAnnotation *></a> &Container;</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>     DestroyTemplateIdAnnotationsRAIIObj(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<TemplateIdAnnotation *></a></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>                                        &Container)</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>       : Container(Container) {}</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>     ~DestroyTemplateIdAnnotationsRAIIObj() {</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<TemplateIdAnnotation *>::iterator</a> I =</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>            Container.begin(), E = Container.end();</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>            I != E; ++I)</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>         (*I)->Destroy();</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>       Container.clear();</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>     }</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>   };</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> }</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment"></span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment">/// ParseTopLevelDecl - Parse one top-level declaration, return whatever the</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> <span class="comment">/// action tells us to.  This returns true if the EOF was encountered.</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a57298abc7e0430e1e29aa2ded476e41a">  574</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Parser.html#a57298abc7e0430e1e29aa2ded476e41a">Parser::ParseTopLevelDecl</a>(<a class="code" href="classclang_1_1OpaquePtr.html" title="Wrapper for void* pointer.">DeclGroupPtrTy</a> &Result) {</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>   DestroyTemplateIdAnnotationsRAIIObj CleanupRAII(TemplateIds);</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">// Skip over the EOF token, flagging end of previous input for incremental </span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>   <span class="comment">// processing</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>   <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#ad1166e9766b8fac3cfd7d97826260c5d" title="Returns true if incremental processing is enabled.">isIncrementalProcessingEnabled</a>() && 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="l00580"></a><span class="lineno">  580</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>   Result = <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>   <span class="keywordflow">case</span> tok::annot_pragma_unused:</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>     HandlePragmaUnused();</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>   <span class="keywordflow">case</span> tok::annot_module_include:</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>     Actions.<a class="code" href="classclang_1_1Sema.html#aa7eb36a79deea0053e0a62c2841898bd" title="The parser has processed a module import translated from a #include or similar preprocessing directiv...">ActOnModuleInclude</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="l00590"></a><span class="lineno">  590</span>                                <span class="keyword">reinterpret_cast<</span><a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<span class="keyword">></span>(</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>                                    Tok.<a class="code" href="classclang_1_1Token.html#a428dc637d123fb0d48a626eb77c4de25">getAnnotationValue</a>()));</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> </div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>:</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>     <span class="comment">// Late template parsing can begin.</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().DelayedTemplateParsing)</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>       Actions.<a class="code" href="classclang_1_1Sema.html#ad121762cc28d0f8b430d729128a2d0d7">SetLateTemplateParser</a>(LateTemplateParserCallback, <span class="keyword">this</span>);</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>     <span class="keywordflow">if</span> (!PP.<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="l00600"></a><span class="lineno">  600</span>       Actions.<a class="code" href="classclang_1_1Sema.html#a30f4aa78fcc4f9d6125c233719f402f1">ActOnEndOfTranslationUnit</a>();</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>     <span class="comment">//else don't tell Sema that we ended parsing: more input might come.</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>   }</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> </div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>   ParsedAttributesWithRange attrs(AttrFactory);</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>   MaybeParseCXX11Attributes(attrs);</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>   MaybeParseMicrosoftAttributes(attrs);</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> </div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>   Result = ParseExternalDeclaration(attrs);</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> }</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="comment"></span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="comment">/// ParseExternalDeclaration:</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="comment">///       external-declaration: [C99 6.9], declaration: [C++ dcl.dcl]</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="comment">///         function-definition</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span> <span class="comment">///         declaration</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span> <span class="comment">/// [GNU]   asm-definition</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="comment">/// [GNU]   __extension__ external-declaration</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="comment">/// [OBJC]  objc-class-definition</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span> <span class="comment">/// [OBJC]  objc-class-declaration</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span> <span class="comment">/// [OBJC]  objc-alias-declaration</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="comment">/// [OBJC]  objc-protocol-definition</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="comment">/// [OBJC]  objc-method-definition</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="comment">/// [OBJC]  @end</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="comment">/// [C++]   linkage-specification</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span> <span class="comment">/// [GNU] asm-definition:</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span> <span class="comment">///         simple-asm-expr ';'</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="comment">/// [C++11] empty-declaration</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">/// [C++11] attribute-declaration</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span> <span class="comment">/// [C++11] empty-declaration:</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span> <span class="comment">///           ';'</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span> <span class="comment">/// [C++0x/GNU] 'extern' 'template' declaration</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span> <span class="comment"></span><a class="code" href="classclang_1_1OpaquePtr.html" title="Wrapper for void* pointer.">Parser::DeclGroupPtrTy</a></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span> Parser::ParseExternalDeclaration(ParsedAttributesWithRange &attrs,</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>                                  <a class="code" href="classclang_1_1ParsingDeclSpec.html" title="A class for parsing a DeclSpec.">ParsingDeclSpec</a> *DS) {</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>   DestroyTemplateIdAnnotationsRAIIObj CleanupRAII(TemplateIds);</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <a class="code" href="classclang_1_1ParenBraceBracketBalancer.html" title="RAII object that makes sure paren/bracket/brace count is correct after declaration/statement parsing...">ParenBraceBracketBalancer</a> BalancerRAIIObj(*<span class="keyword">this</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>   <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#a16a76d8587aa4ff99cb4a1307a596123" title="Returns true if code-completion is enabled and we have hit the code-completion point.">isCodeCompletionReached</a>()) {</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>     cutOffParsing();</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>   }</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span> </div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>   <a class="code" href="classclang_1_1Decl.html">Decl</a> *SingleDecl = 0;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>   <span class="keywordflow">case</span> tok::annot_pragma_vis:</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>     HandlePragmaVisibility();</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>   <span class="keywordflow">case</span> tok::annot_pragma_pack:</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>     HandlePragmaPack();</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>   <span class="keywordflow">case</span> tok::annot_pragma_msstruct:</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>     HandlePragmaMSStruct();</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>   <span class="keywordflow">case</span> tok::annot_pragma_align:</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>     HandlePragmaAlign();</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>   <span class="keywordflow">case</span> tok::annot_pragma_weak:</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>     HandlePragmaWeak();</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>   <span class="keywordflow">case</span> tok::annot_pragma_weakalias:</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>     HandlePragmaWeakAlias();</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>   <span class="keywordflow">case</span> tok::annot_pragma_redefine_extname:</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>     HandlePragmaRedefineExtname();</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>   <span class="keywordflow">case</span> tok::annot_pragma_fp_contract:</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>     HandlePragmaFPContract();</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>   <span class="keywordflow">case</span> tok::annot_pragma_opencl_extension:</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>     HandlePragmaOpenCLExtension();</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>   <span class="keywordflow">case</span> tok::annot_pragma_openmp:</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>     ParseOpenMPDeclarativeDirective();</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>   <span class="keywordflow">case</span> tok::semi:</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>     <span class="comment">// Either a C++11 empty-declaration or attribute-declaration.</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>     SingleDecl = Actions.<a class="code" href="classclang_1_1Sema.html#ad2bdbe4a8a942035b7ab068438b87a83" title="Handle a C++11 empty-declaration and attribute-declaration.">ActOnEmptyDeclaration</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(),</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>                                                attrs.getList(),</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>                                                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="l00687"></a><span class="lineno">  687</span>     ConsumeExtraSemi(OutsideFunction);</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>   <span class="keywordflow">case</span> tok::r_brace:</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_extraneous_closing_brace);</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>     ConsumeBrace();</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>   <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>:</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_expected_external_declaration);</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>   <span class="keywordflow">case</span> tok::kw___extension__: {</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>     <span class="comment">// __extension__ silences extension warnings in the subexpression.</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>     <a class="code" href="classclang_1_1ExtensionRAIIObject.html">ExtensionRAIIObject</a> O(Diags);  <span class="comment">// Use RAII to do this.</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>     <span class="keywordflow">return</span> ParseExternalDeclaration(attrs);</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>   }</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>   <span class="keywordflow">case</span> tok::kw_asm: {</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>     ProhibitAttributes(attrs);</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span> </div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>     <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 = 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="l00706"></a><span class="lineno">  706</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> EndLoc;</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>     <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> Result(ParseSimpleAsm(&EndLoc));</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span> </div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>     ExpectAndConsume(tok::semi, diag::err_expected_semi_after,</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>                      <span class="stringliteral">"top-level asm block"</span>);</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span> </div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>     <span class="keywordflow">if</span> (Result.isInvalid())</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>     SingleDecl = Actions.<a class="code" href="classclang_1_1Sema.html#a3b9bcad4aa35be8115c51c7e2e4a757b">ActOnFileScopeAsmDecl</a>(Result.get(), StartLoc, EndLoc);</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>     <span class="keywordflow">break</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="keywordflow">case</span> tok::at:</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     <span class="keywordflow">return</span> ParseObjCAtDirectives();</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>   <span class="keywordflow">case</span> tok::minus:</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>   <span class="keywordflow">case</span> tok::plus:</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().ObjC1) {</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_expected_external_declaration);</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>     }</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>     SingleDecl = ParseObjCMethodDefinition();</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>   <span class="keywordflow">case</span> tok::code_completion:</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>       Actions.<a class="code" href="classclang_1_1Sema.html#ac525aae0ab06911b93313e480d3bc9c4">CodeCompleteOrdinaryName</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), </div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>                              CurParsedObjCImpl? <a class="code" href="classclang_1_1Sema.html#a9920bd1044f1c4fa6eaaf4097e5263e4a6792fd07b4fece70d2d505fb353a44e9" title="Code completion occurs within an Objective-C implementation or category implementation.">Sema::PCC_ObjCImplementation</a></div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>                                               : <a class="code" href="classclang_1_1Sema.html#a9920bd1044f1c4fa6eaaf4097e5263e4aa37194067b3d4f6ec922e0a2939851f8" title="Code completion occurs at top-level or namespace context.">Sema::PCC_Namespace</a>);</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>     cutOffParsing();</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>   <span class="keywordflow">case</span> tok::kw_using:</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>   <span class="keywordflow">case</span> tok::kw_namespace:</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>   <span class="keywordflow">case</span> tok::kw_typedef:</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>   <span class="keywordflow">case</span> tok::kw_template:</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>   <span class="keywordflow">case</span> tok::kw_export:    <span class="comment">// As in 'export template'</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>   <span class="keywordflow">case</span> tok::kw_static_assert:</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>   <span class="keywordflow">case</span> tok::kw__Static_assert:</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>     <span class="comment">// A function definition cannot start with any of these keywords.</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>     {</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>       <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> DeclEnd;</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>       StmtVector Stmts;</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>       <span class="keywordflow">return</span> ParseDeclaration(Stmts, <a class="code" href="classclang_1_1Declarator.html#a1e882aec89a926d4a64b0ac2d6a40156af0880405dff056ebbd56152e963e5cd5">Declarator::FileContext</a>, DeclEnd, attrs);</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>     }</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span> </div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>   <span class="keywordflow">case</span> tok::kw_static:</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>     <span class="comment">// Parse (then ignore) 'static' prior to a template instantiation. This is</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>     <span class="comment">// a GCC extension that we intentionally do not support.</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a> && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().is(tok::kw_template)) {</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(<a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>(), diag::warn_static_inline_explicit_inst_ignored)</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>         << 0;</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</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> DeclEnd;</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>       StmtVector Stmts;</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>       <span class="keywordflow">return</span> ParseDeclaration(Stmts, <a class="code" href="classclang_1_1Declarator.html#a1e882aec89a926d4a64b0ac2d6a40156af0880405dff056ebbd56152e963e5cd5">Declarator::FileContext</a>, DeclEnd, attrs);  </div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>     }</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>     <span class="keywordflow">goto</span> dont_know;</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>       </div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>   <span class="keywordflow">case</span> tok::kw_inline:</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a>) {</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</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> NextKind = <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>();</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="comment">// Inline namespaces. Allowed as an extension even in C++03.</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>       <span class="keywordflow">if</span> (NextKind == tok::kw_namespace) {</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</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> DeclEnd;</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>         StmtVector Stmts;</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>         <span class="keywordflow">return</span> ParseDeclaration(Stmts, <a class="code" href="classclang_1_1Declarator.html#a1e882aec89a926d4a64b0ac2d6a40156af0880405dff056ebbd56152e963e5cd5">Declarator::FileContext</a>, DeclEnd, attrs);</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>       }</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>       </div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>       <span class="comment">// Parse (then ignore) 'inline' prior to a template instantiation. This is</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>       <span class="comment">// a GCC extension that we intentionally do not support.</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>       <span class="keywordflow">if</span> (NextKind == tok::kw_template) {</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>         <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(<a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>(), diag::warn_static_inline_explicit_inst_ignored)</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>           << 1;</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</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> DeclEnd;</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>         StmtVector Stmts;</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>         <span class="keywordflow">return</span> ParseDeclaration(Stmts, <a class="code" href="classclang_1_1Declarator.html#a1e882aec89a926d4a64b0ac2d6a40156af0880405dff056ebbd56152e963e5cd5">Declarator::FileContext</a>, DeclEnd, attrs);  </div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>       }</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>     }</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>     <span class="keywordflow">goto</span> dont_know;</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> </div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>   <span class="keywordflow">case</span> tok::kw_extern:</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a> && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().is(tok::kw_template)) {</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>       <span class="comment">// Extern templates</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>       <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ExternLoc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</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> TemplateLoc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(ExternLoc, <a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bba306744f6eb6433073e27523a5ed63184">CPlusPlus11</a> ?</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>              diag::warn_cxx98_compat_extern_template :</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>              diag::ext_extern_template) << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ExternLoc, TemplateLoc);</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</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> DeclEnd;</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>       <span class="keywordflow">return</span> Actions.<a class="code" href="classclang_1_1Sema.html#af97d1afaafdd80de7db9e06cdaebbf52">ConvertDeclToDeclGroup</a>(</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>                   ParseExplicitInstantiation(<a class="code" href="classclang_1_1Declarator.html#a1e882aec89a926d4a64b0ac2d6a40156af0880405dff056ebbd56152e963e5cd5">Declarator::FileContext</a>,</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>                                              ExternLoc, TemplateLoc, DeclEnd));</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>     }</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>     <span class="comment">// FIXME: Detect C++ linkage specifications here?</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>     <span class="keywordflow">goto</span> dont_know;</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span> </div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>   <span class="keywordflow">case</span> tok::kw___if_exists:</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>   <span class="keywordflow">case</span> tok::kw___if_not_exists:</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>     ParseMicrosoftIfExistsExternalDeclaration();</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>       </div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>   dont_know:</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>     <span class="comment">// We can't tell whether this is a function-definition or declaration yet.</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>     <span class="keywordflow">return</span> ParseDeclarationOrFunctionDefinition(attrs, DS);</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   }</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span> </div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>   <span class="comment">// This routine returns a DeclGroup, if the thing we parsed only contains a</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>   <span class="comment">// single decl, convert it now.</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>   <span class="keywordflow">return</span> Actions.<a class="code" href="classclang_1_1Sema.html#af97d1afaafdd80de7db9e06cdaebbf52">ConvertDeclToDeclGroup</a>(SingleDecl);</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span> }</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span> <span class="comment"></span></div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span> <span class="comment">/// \brief Determine whether the current token, if it occurs after a</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span> <span class="comment">/// declarator, continues a declaration or declaration list.</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> <span class="comment"></span><span class="keywordtype">bool</span> Parser::isDeclarationAfterDeclarator() {</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>   <span class="comment">// Check for '= delete' or '= default'</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a> && Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal)) {</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &KW = <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>();</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>     <span class="keywordflow">if</span> (KW.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_default) || KW.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_delete))</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>   }</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>   </div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>   <span class="keywordflow">return</span> Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal) ||      <span class="comment">// int X()=  -> not a function def</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>     Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma) ||           <span class="comment">// int X(),  -> not a function def</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>     Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::semi)  ||           <span class="comment">// int X();  -> not a function def</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>     Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_asm) ||          <span class="comment">// int X() __asm__ -> not a function def</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>     Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___attribute) ||  <span class="comment">// int X() __attr__ -> not a function def</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>     (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().CPlusPlus &&</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>      Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren));         <span class="comment">// int X(0) -> not a function def [C++]</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span> }</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="comment"></span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span> <span class="comment">/// \brief Determine whether the current token, if it occurs after a</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span> <span class="comment">/// declarator, indicates the start of a function definition.</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span> <span class="comment"></span><span class="keywordtype">bool</span> Parser::isStartOfFunctionDefinition(<span class="keyword">const</span> <a class="code" href="classclang_1_1ParsingDeclarator.html" title="A class for parsing a declarator.">ParsingDeclarator</a> &<a class="code" href="classclang_1_1Declarator.html" title="Information about one declarator, including the parsed type information and the identifier.">Declarator</a>) {</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>   assert(Declarator.<a class="code" href="classclang_1_1Declarator.html#ac884bb945b77ea6b605e9c7c5fd66bad">isFunctionDeclarator</a>() && <span class="stringliteral">"Isn't a function declarator"</span>);</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_brace))   <span class="comment">// int X() {}</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>   </div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>   <span class="comment">// Handle K&R C argument lists: int X(f) int f; {}</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().CPlusPlus &&</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>       Declarator.<a class="code" href="classclang_1_1Declarator.html#aab829e1627079197e630182d9d56a9c6">getFunctionTypeInfo</a>().<a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html#a5e209c1900eb4681b2698b87e0cff9cb">isKNRPrototype</a>()) </div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>     <span class="keywordflow">return</span> isDeclarationSpecifier();</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span> </div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().CPlusPlus && Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal)) {</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &KW = <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>();</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>     <span class="keywordflow">return</span> KW.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_default) || KW.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_delete);</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>   }</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>   </div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>   <span class="keywordflow">return</span> Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::colon) ||         <span class="comment">// X() : Base() {} (used for ctors)</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>          Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_try);          <span class="comment">// X() try { ... }</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="comment"></span></div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span> <span class="comment">/// ParseDeclarationOrFunctionDefinition - Parse either a function-definition or</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span> <span class="comment">/// a declaration.  We can't tell which we have until we read up to the</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span> <span class="comment">/// compound-statement in function-definition. TemplateParams, if</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span> <span class="comment">/// non-NULL, provides the template parameters when we're parsing a</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span> <span class="comment">/// C++ template-declaration.</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span> <span class="comment">///       function-definition: [C99 6.9.1]</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span> <span class="comment">///         decl-specs      declarator declaration-list[opt] compound-statement</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span> <span class="comment">/// [C90] function-definition: [C99 6.7.1] - implicit int result</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span> <span class="comment">/// [C90]   decl-specs[opt] declarator declaration-list[opt] compound-statement</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> <span class="comment">///       declaration: [C99 6.7]</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span> <span class="comment">///         declaration-specifiers init-declarator-list[opt] ';'</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span> <span class="comment">/// [!C99]  init-declarator-list ';'                   [TODO: warn in c99 mode]</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span> <span class="comment">/// [OMP]   threadprivate-directive                              [TODO]</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span> <span class="comment"></span><a class="code" href="classclang_1_1OpaquePtr.html" title="Wrapper for void* pointer.">Parser::DeclGroupPtrTy</a></div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span> Parser::ParseDeclOrFunctionDefInternal(ParsedAttributesWithRange &attrs,</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>                                        <a class="code" href="classclang_1_1ParsingDeclSpec.html" title="A class for parsing a DeclSpec.">ParsingDeclSpec</a> &DS,</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>                                        <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988f" title="A C++ access specifier (public, private, protected), plus the special value "none" which means differ...">AccessSpecifier</a> AS) {</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>   <span class="comment">// Parse the common declaration-specifiers piece.</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>   ParseDeclarationSpecifiers(DS, ParsedTemplateInfo(), AS, DSC_top_level);</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>   <span class="comment">// If we had a free-standing type definition with a missing semicolon, we</span></div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>   <span class="comment">// may get this far before the problem becomes obvious.</span></div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>   <span class="keywordflow">if</span> (DS.<a class="code" href="classclang_1_1DeclSpec.html#ae312c0a325b2ca5857b65f9ac8003dfb">hasTagDefinition</a>() &&</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>       DiagnoseMissingSemiAfterTagDefinition(DS, AS, DSC_top_level))</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span> </div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>   <span class="comment">// C99 6.7.2.3p6: Handle "struct-or-union identifier;", "enum { X };"</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>   <span class="comment">// declaration-specifiers init-declarator-list[opt] ';'</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::semi)) {</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>     ProhibitAttributes(attrs);</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>     <a class="code" href="classclang_1_1Decl.html">Decl</a> *TheDecl = Actions.<a class="code" href="classclang_1_1Sema.html#acfe6c814a028e46343b0bc069e88c4cf">ParsedFreeStandingDeclSpec</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), AS, DS);</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>     DS.<a class="code" href="classclang_1_1ParsingDeclSpec.html#acbb3270e8f076c021d07600255c53865">complete</a>(TheDecl);</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>     <span class="keywordflow">return</span> Actions.<a class="code" href="classclang_1_1Sema.html#af97d1afaafdd80de7db9e06cdaebbf52">ConvertDeclToDeclGroup</a>(TheDecl);</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>   }</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span> </div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>   DS.<a class="code" href="classclang_1_1DeclSpec.html#af2c90bf49db094ba955821df324218c9">takeAttributesFrom</a>(attrs);</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span> </div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>   <span class="comment">// ObjC2 allows prefix attributes on class interfaces and protocols.</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>   <span class="comment">// FIXME: This still needs better diagnostics. We should only accept</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>   <span class="comment">// attributes here, no types, etc.</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().ObjC2 && Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::at)) {</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</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> AtLoc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>(); <span class="comment">// the "@"</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>     <span class="keywordflow">if</span> (!Tok.<a class="code" href="classclang_1_1Token.html#a5761d2afabf61a167722a8d2ac7a9f51" title="Return true if we have an ObjC keyword identifier.">isObjCAtKeyword</a>(tok::objc_interface) &&</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>         !Tok.<a class="code" href="classclang_1_1Token.html#a5761d2afabf61a167722a8d2ac7a9f51" title="Return true if we have an ObjC keyword identifier.">isObjCAtKeyword</a>(tok::objc_protocol)) {</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_objc_unexpected_attr);</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>       <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::semi); <span class="comment">// FIXME: better skip?</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>     }</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span> </div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>     DS.<a class="code" href="classclang_1_1ParsingDeclSpec.html#a8c879ac27c8f0b2c2a00cae90f3db267">abort</a>();</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span> </div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *PrevSpec = 0;</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>     <span class="keywordtype">unsigned</span> DiagID;</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>     <span class="keywordflow">if</span> (DS.<a class="code" href="classclang_1_1DeclSpec.html#af184ab7eeb4737c8f52ebdd72e49c70c">SetTypeSpecType</a>(<a class="code" href="classclang_1_1DeclSpec.html#ac7b75c8498ffe58ffc79763e1548d549">DeclSpec::TST_unspecified</a>, AtLoc, PrevSpec, DiagID))</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(AtLoc, DiagID) << PrevSpec;</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span> </div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#a5761d2afabf61a167722a8d2ac7a9f51" title="Return true if we have an ObjC keyword identifier.">isObjCAtKeyword</a>(tok::objc_protocol))</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>       <span class="keywordflow">return</span> ParseObjCAtProtocolDeclaration(AtLoc, DS.<a class="code" href="classclang_1_1DeclSpec.html#a6943e56367dc870afb5ce6b7de04b972">getAttributes</a>());</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span> </div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>     <span class="keywordflow">return</span> Actions.<a class="code" href="classclang_1_1Sema.html#af97d1afaafdd80de7db9e06cdaebbf52">ConvertDeclToDeclGroup</a>(</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>             ParseObjCAtInterfaceDeclaration(AtLoc, DS.<a class="code" href="classclang_1_1DeclSpec.html#a6943e56367dc870afb5ce6b7de04b972">getAttributes</a>()));</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>   }</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span> </div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>   <span class="comment">// If the declspec consisted only of 'extern' and we have a string</span></div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>   <span class="comment">// literal following it, this must be a C++ linkage specifier like</span></div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>   <span class="comment">// 'extern "C"'.</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::string_literal) && <a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().CPlusPlus &&</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>       DS.<a class="code" href="classclang_1_1DeclSpec.html#a21616b8df7b2fd0305197604ab31ca71">getStorageClassSpec</a>() == <a class="code" href="classclang_1_1DeclSpec.html#a4b96d236218cac3d52edb71876f64da4a32641ae86aa6300eab150d423d1122f5">DeclSpec::SCS_extern</a> &&</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>       DS.<a class="code" href="classclang_1_1DeclSpec.html#aa26256b603b8ac6151b79c3ff6c6bce4" title="Return a bitmask of which flavors of specifiers this DeclSpec includes.">getParsedSpecifiers</a>() == <a class="code" href="classclang_1_1DeclSpec.html#afb17a8617cf89f436b84f6edeecc6c8aa48ae237da8a243fc783d1dd9bcc53fda">DeclSpec::PQ_StorageClassSpecifier</a>) {</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>     <a class="code" href="classclang_1_1Decl.html">Decl</a> *TheDecl = ParseLinkage(DS, <a class="code" href="classclang_1_1Declarator.html#a1e882aec89a926d4a64b0ac2d6a40156af0880405dff056ebbd56152e963e5cd5">Declarator::FileContext</a>);</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>     <span class="keywordflow">return</span> Actions.<a class="code" href="classclang_1_1Sema.html#af97d1afaafdd80de7db9e06cdaebbf52">ConvertDeclToDeclGroup</a>(TheDecl);</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>   }</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span> </div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>   <span class="keywordflow">return</span> ParseDeclGroup(DS, <a class="code" href="classclang_1_1Declarator.html#a1e882aec89a926d4a64b0ac2d6a40156af0880405dff056ebbd56152e963e5cd5">Declarator::FileContext</a>, <span class="keyword">true</span>);</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> <a class="code" href="classclang_1_1OpaquePtr.html" title="Wrapper for void* pointer.">Parser::DeclGroupPtrTy</a></div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span> Parser::ParseDeclarationOrFunctionDefinition(ParsedAttributesWithRange &attrs,</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>                                              <a class="code" href="classclang_1_1ParsingDeclSpec.html" title="A class for parsing a DeclSpec.">ParsingDeclSpec</a> *DS,</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>                                              <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988f" title="A C++ access specifier (public, private, protected), plus the special value "none" which means differ...">AccessSpecifier</a> AS) {</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>   <span class="keywordflow">if</span> (DS) {</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>     <span class="keywordflow">return</span> ParseDeclOrFunctionDefInternal(attrs, *DS, AS);</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>     <a class="code" href="classclang_1_1ParsingDeclSpec.html" title="A class for parsing a DeclSpec.">ParsingDeclSpec</a> PDS(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>     <span class="comment">// Must temporarily exit the objective-c container scope for</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>     <span class="comment">// parsing c constructs and re-enter objc container scope</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>     <span class="comment">// afterwards.</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>     <a class="code" href="classclang_1_1Parser.html#a925bfddba9b0ac6fb0d3bdc6585ea7c8">ObjCDeclContextSwitch</a> ObjCDC(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>       </div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>     <span class="keywordflow">return</span> ParseDeclOrFunctionDefInternal(attrs, PDS, AS);</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>   }</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span> }</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span> </div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span> </div>
+<div class="line"><a name="l00953"></a><span class="lineno"><a class="code" href="Parse_2Parser_8cpp.html#a0be3318507e1836a99ee03380fb55fee">  953</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="Parse_2Parser_8cpp.html#a0be3318507e1836a99ee03380fb55fee">isFunctionDeclaratorRequiringReturnTypeDeduction</a>(</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>     <span class="keyword">const</span> Declarator &D) {</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>   <span class="keywordflow">if</span> (!D.<a class="code" href="classclang_1_1Declarator.html#ac884bb945b77ea6b605e9c7c5fd66bad">isFunctionDeclarator</a>() || !D.<a class="code" href="classclang_1_1Declarator.html#a759faf43a439cce3a915e11f33ff8c5a">getDeclSpec</a>().<a class="code" href="classclang_1_1DeclSpec.html#aa2996643d905c762a7213b51e959053a">containsPlaceholderType</a>()) </div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, E = D.<a class="code" href="classclang_1_1Declarator.html#a93d4ac55876e700883cd3775f47b499e" title="Return the number of types applied to this declarator.">getNumTypeObjects</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>     <span class="keywordtype">unsigned</span> chunkIndex = E - I - 1;</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>     <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclaratorChunk.html" title="One instance of this struct is used for each type in a declarator that is parsed.">DeclaratorChunk</a> &DeclType = D.<a class="code" href="classclang_1_1Declarator.html#a8eef5fa389c92da7d750fbbb7ce7b9f9">getTypeObject</a>(chunkIndex);</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>     <span class="keywordflow">if</span> (DeclType.<a class="code" href="structclang_1_1DeclaratorChunk.html#aec83aec53644bae39b90eb0d71bfa637">Kind</a> == <a class="code" href="structclang_1_1DeclaratorChunk.html#acbcfac544c507b8adc4e86c601a12a87a0e535631da889deff61b9c14174afd9e">DeclaratorChunk::Function</a>) {</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>       <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html">DeclaratorChunk::FunctionTypeInfo</a> &FTI = DeclType.<a class="code" href="structclang_1_1DeclaratorChunk.html#ac9586b88d3df737db9979786e84ecce5">Fun</a>;</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>       <span class="keywordflow">if</span> (!FTI.<a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html#a99e95394914251a2a8c3f02207df6d58" title="Determine whether this function declarator had a trailing-return-type.">hasTrailingReturnType</a>()) </div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>       <a class="code" href="classclang_1_1QualType.html">QualType</a> TrailingRetType = FTI.<a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html#a9183d6359f2992431505799ab4bd3618" title="Get the trailing-return-type for this function declarator.">getTrailingReturnType</a>().<a class="code" href="classclang_1_1OpaquePtr.html#a697242042954af7a2206fbd3c1acbf7e">get</a>();</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>       <span class="keywordflow">return</span> TrailingRetType-><a class="code" href="classclang_1_1Type.html#a6bd50f807f10864ef809b41555e8d47c">getCanonicalTypeInternal</a>()</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>         -><a class="code" href="classclang_1_1Type.html#a1cb680b9778b1825cf585afaf82bc1b8" title="Get the AutoType whose type will be deduced for a variable with an initializer of this type...">getContainedAutoType</a>();</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>     }</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>   } </div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span> }</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span> <span class="comment"></span></div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span> <span class="comment">/// ParseFunctionDefinition - We parsed and verified that the specified</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span> <span class="comment">/// Declarator is well formed.  If this is a K&R-style function, read the</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span> <span class="comment">/// parameters declaration-list, then start the compound-statement.</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span> <span class="comment">///       function-definition: [C99 6.9.1]</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span> <span class="comment">///         decl-specs      declarator declaration-list[opt] compound-statement</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span> <span class="comment">/// [C90] function-definition: [C99 6.7.1] - implicit int result</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span> <span class="comment">/// [C90]   decl-specs[opt] declarator declaration-list[opt] compound-statement</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span> <span class="comment">/// [C++] function-definition: [C++ 8.4]</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span> <span class="comment">///         decl-specifier-seq[opt] declarator ctor-initializer[opt]</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span> <span class="comment">///         function-body</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span> <span class="comment">/// [C++] function-definition: [C++ 8.4]</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span> <span class="comment">///         decl-specifier-seq[opt] declarator function-try-block</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span> <span class="comment"></span><a class="code" href="classclang_1_1Decl.html">Decl</a> *Parser::ParseFunctionDefinition(<a class="code" href="classclang_1_1ParsingDeclarator.html" title="A class for parsing a declarator.">ParsingDeclarator</a> &D,</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>                                       <span class="keyword">const</span> ParsedTemplateInfo &TemplateInfo,</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>                                       LateParsedAttrList *LateParsedAttrs) {</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>   <span class="comment">// Poison the SEH identifiers so they are flagged as illegal in function bodies</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>   <a class="code" href="classclang_1_1PoisonSEHIdentifiersRAIIObject.html">PoisonSEHIdentifiersRAIIObject</a> PoisonSEHIdentifiers(*<span class="keyword">this</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>   <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html">DeclaratorChunk::FunctionTypeInfo</a> &FTI = D.<a class="code" href="classclang_1_1Declarator.html#aab829e1627079197e630182d9d56a9c6">getFunctionTypeInfo</a>();</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span> </div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>   <span class="comment">// If this is C90 and the declspecs were completely missing, fudge in an</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>   <span class="comment">// implicit int.  We do this here because this is the only place where</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>   <span class="comment">// declaration-specifiers are completely optional in the grammar.</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbad662245bce979f40e1091e38d15904d1">ImplicitInt</a> && D.<a class="code" href="classclang_1_1ParsingDeclarator.html#ae182978b90b1483b3aab0a8bc29abef9">getDeclSpec</a>().<a class="code" href="classclang_1_1DeclSpec.html#ac08f67e48eb6115bb5ac0cc9a357bb50">isEmpty</a>()) {</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *PrevSpec;</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>     <span class="keywordtype">unsigned</span> DiagID;</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>     D.<a class="code" href="classclang_1_1ParsingDeclarator.html#ac7729307a2d69cff58fbbd8b69891dbb">getMutableDeclSpec</a>().<a class="code" href="classclang_1_1DeclSpec.html#af184ab7eeb4737c8f52ebdd72e49c70c">SetTypeSpecType</a>(<a class="code" href="classclang_1_1DeclSpec.html#a4fb6177b24f3515ac5dd81175be31208">DeclSpec::TST_int</a>,</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>                                            D.<a class="code" href="classclang_1_1Declarator.html#a9399027da6026803450f7ffb7957adac">getIdentifierLoc</a>(),</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>                                            PrevSpec, DiagID);</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>     D.<a class="code" href="classclang_1_1Declarator.html#a13efa9396ee1040fcd8704321db8243f">SetRangeBegin</a>(D.<a class="code" href="classclang_1_1ParsingDeclarator.html#ae182978b90b1483b3aab0a8bc29abef9">getDeclSpec</a>().<a class="code" href="classclang_1_1DeclSpec.html#a7b8a30b08c1fa1aac47e417167a8631f">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>());</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> </div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>   <span class="comment">// If this declaration was formed with a K&R-style identifier list for the</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>   <span class="comment">// arguments, parse declarations for all of the args next.</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>   <span class="comment">// int foo(a,b) int a; float b; {}</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>   <span class="keywordflow">if</span> (FTI.<a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html#a5e209c1900eb4681b2698b87e0cff9cb">isKNRPrototype</a>())</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>     ParseKNRParamDeclarations(D);</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">// We should have either an opening brace or, in a C++ constructor,</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>   <span class="comment">// we may have a colon.</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_brace) && </div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>       (!<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().CPlusPlus ||</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>        (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::colon) && Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::kw_try) &&</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>         Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::equal)))) {</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_expected_fn_body);</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> </div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>     <span class="comment">// Skip over garbage, until we get to '{'.  Don't eat the '{'.</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>     <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::l_brace, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a> | <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea7eadfbdad0b0f32d010aa026f79f44d9" title="Stop skipping at specified token, but don't skip the token itself.">StopBeforeMatch</a>);</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> </div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>     <span class="comment">// If we didn't find the '{', bail out.</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_brace))</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>   }</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> </div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>   <span class="comment">// Check to make sure that any normal attributes are allowed to be on</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>   <span class="comment">// a definition.  Late parsed attributes are checked at the end.</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::equal)) {</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>     <a class="code" href="classclang_1_1AttributeList.html">AttributeList</a> *DtorAttrs = D.<a class="code" href="classclang_1_1Declarator.html#aeb66a4bbf426a437b07c04fd5eb52982">getAttributes</a>();</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>     <span class="keywordflow">while</span> (DtorAttrs) {</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>       <span class="keywordflow">if</span> (!IsThreadSafetyAttribute(DtorAttrs-><a class="code" href="classclang_1_1AttributeList.html#ad33e72a3989e9a61697da22d0211bf15">getName</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>()) &&</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>           !DtorAttrs-><a class="code" href="classclang_1_1AttributeList.html#a6e7765977c4d8e2f47197ef94f5e0b37">isCXX11Attribute</a>()) {</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>         <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(DtorAttrs-><a class="code" href="classclang_1_1AttributeList.html#a764e55754a52aa43b991dbbb24fa1450">getLoc</a>(), diag::warn_attribute_on_function_definition)</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>           << DtorAttrs-><a class="code" href="classclang_1_1AttributeList.html#ad33e72a3989e9a61697da22d0211bf15">getName</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>       }</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>       DtorAttrs = DtorAttrs-><a class="code" href="classclang_1_1AttributeList.html#a9e8836cfe5794658c6811dc504476f39">getNext</a>();</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>     }</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>   }</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> </div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>   <span class="comment">// In delayed template parsing mode, for function template we consume the</span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>   <span class="comment">// tokens and store them for late parsing at the end of the translation unit.</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().DelayedTemplateParsing && Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::equal) &&</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>       TemplateInfo.Kind == ParsedTemplateInfo::Template &&</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>       !D.<a class="code" href="classclang_1_1ParsingDeclarator.html#ae182978b90b1483b3aab0a8bc29abef9">getDeclSpec</a>().<a class="code" href="classclang_1_1DeclSpec.html#af31541afc7e8463cae0a1afe9946f1cf">isConstexprSpecified</a>() && </div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>       !<a class="code" href="Parse_2Parser_8cpp.html#a0be3318507e1836a99ee03380fb55fee">isFunctionDeclaratorRequiringReturnTypeDeduction</a>(D)) {</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>     <a class="code" href="namespaceclang.html#a390b7b33929bebeea635fd6654cc4760">MultiTemplateParamsArg</a> <a class="code" href="classclang_1_1Parser.html#af56d5f355fdfa215fcd576434347a29b">TemplateParameterLists</a>(*TemplateInfo.TemplateParams);</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>     </div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>     ParseScope BodyScope(<span class="keyword">this</span>, <a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7aec9cad8f5dd22da19c76343a52dd6a2d" title="This indicates that the scope corresponds to a function, which means that labels are set here...">Scope::FnScope</a>|<a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7af9dd922f0e23495a79fc93698d6775ff" title="This is a scope that can contain a declaration. Some scopes just contain loop constructs but don't co...">Scope::DeclScope</a>);</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>     <a class="code" href="classclang_1_1Scope.html">Scope</a> *ParentScope = <a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>()-><a class="code" href="classclang_1_1Scope.html#a41a39e012b966ffcb2f05d41f4bdbb4b">getParent</a>();</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>     D.<a class="code" href="classclang_1_1Declarator.html#aa9790f94a9fc864c2b290051e7b744f5">setFunctionDefinitionKind</a>(<a class="code" href="namespaceclang.html#a1ffc7a7adb0d5acc8fcc45f18dd5b529a32b500e01ce6b89bd9c5da6362caa144">FDK_Definition</a>);</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>     <a class="code" href="classclang_1_1Decl.html">Decl</a> *DP = Actions.<a class="code" href="classclang_1_1Sema.html#a2d1eb7f866878c9ae78ba5f2886c53b3">HandleDeclarator</a>(ParentScope, D,</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>                                         <a class="code" href="classclang_1_1Parser.html#af56d5f355fdfa215fcd576434347a29b">TemplateParameterLists</a>);</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>     D.<a class="code" href="classclang_1_1ParsingDeclarator.html#afcce9326f656018b9420b2de274f4ea9">complete</a>(DP);</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>     D.<a class="code" href="classclang_1_1ParsingDeclarator.html#ac7729307a2d69cff58fbbd8b69891dbb">getMutableDeclSpec</a>().<a class="code" href="classclang_1_1ParsingDeclSpec.html#a8c879ac27c8f0b2c2a00cae90f3db267">abort</a>();</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>     <a class="code" href="classllvm_1_1SmallVector.html">CachedTokens</a> Toks;</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>     LexTemplateFunctionForLateParsing(Toks);</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> </div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>     <span class="keywordflow">if</span> (DP) {</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>       <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FnD = 0;</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FunctionTemplateDecl.html" title="Declaration of a template function.">FunctionTemplateDecl</a> *FunTmpl = dyn_cast<FunctionTemplateDecl>(DP))</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>         FnD = FunTmpl->getTemplatedDecl();</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>         FnD = cast<FunctionDecl>(DP);</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>       Actions.<a class="code" href="classclang_1_1Sema.html#af779ca9099e73d0b8f8ab8f22bf3bc25">CheckForFunctionRedefinition</a>(FnD);</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>       Actions.<a class="code" href="classclang_1_1Sema.html#a4dc0d21e1d9800cd49b641ab8654edbc">MarkAsLateParsedTemplate</a>(FnD, DP, Toks);</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>     }</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>     <span class="keywordflow">return</span> DP;</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="keywordflow">else</span> <span class="keywordflow">if</span> (CurParsedObjCImpl && </div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>            !TemplateInfo.TemplateParams &&</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>            (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_brace) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_try) ||</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>             Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::colon)) && </div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>       Actions.<a class="code" href="classclang_1_1Sema.html#a915a017e1ec7e24452d90bebe226c8cc" title="CurContext - This is the current declaration context of parsing.">CurContext</a>-><a class="code" href="classclang_1_1DeclContext.html#add710d53ebeab05385a08e978862c149">isTranslationUnit</a>()) {</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>     ParseScope BodyScope(<span class="keyword">this</span>, <a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7aec9cad8f5dd22da19c76343a52dd6a2d" title="This indicates that the scope corresponds to a function, which means that labels are set here...">Scope::FnScope</a>|<a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7af9dd922f0e23495a79fc93698d6775ff" title="This is a scope that can contain a declaration. Some scopes just contain loop constructs but don't co...">Scope::DeclScope</a>);</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>     <a class="code" href="classclang_1_1Scope.html">Scope</a> *ParentScope = <a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>()-><a class="code" href="classclang_1_1Scope.html#a41a39e012b966ffcb2f05d41f4bdbb4b">getParent</a>();</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>     </div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>     D.<a class="code" href="classclang_1_1Declarator.html#aa9790f94a9fc864c2b290051e7b744f5">setFunctionDefinitionKind</a>(<a class="code" href="namespaceclang.html#a1ffc7a7adb0d5acc8fcc45f18dd5b529a32b500e01ce6b89bd9c5da6362caa144">FDK_Definition</a>);</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>     <a class="code" href="classclang_1_1Decl.html">Decl</a> *FuncDecl = Actions.<a class="code" href="classclang_1_1Sema.html#a2d1eb7f866878c9ae78ba5f2886c53b3">HandleDeclarator</a>(ParentScope, D,</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>                                               <a class="code" href="namespaceclang.html#a390b7b33929bebeea635fd6654cc4760">MultiTemplateParamsArg</a>());</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>     D.<a class="code" href="classclang_1_1ParsingDeclarator.html#afcce9326f656018b9420b2de274f4ea9">complete</a>(FuncDecl);</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>     D.<a class="code" href="classclang_1_1ParsingDeclarator.html#ac7729307a2d69cff58fbbd8b69891dbb">getMutableDeclSpec</a>().<a class="code" href="classclang_1_1ParsingDeclSpec.html#a8c879ac27c8f0b2c2a00cae90f3db267">abort</a>();</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>     <span class="keywordflow">if</span> (FuncDecl) {</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>       <span class="comment">// Consume the tokens and store them for later parsing.</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>       StashAwayMethodOrFunctionBodyTokens(FuncDecl);</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>       CurParsedObjCImpl->HasCFunction = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>       <span class="keywordflow">return</span> FuncDecl;</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>     }</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>   }</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>       </div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>   <span class="comment">// Enter a scope for the function body.</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>   ParseScope BodyScope(<span class="keyword">this</span>, <a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7aec9cad8f5dd22da19c76343a52dd6a2d" title="This indicates that the scope corresponds to a function, which means that labels are set here...">Scope::FnScope</a>|<a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7af9dd922f0e23495a79fc93698d6775ff" title="This is a scope that can contain a declaration. Some scopes just contain loop constructs but don't co...">Scope::DeclScope</a>);</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> </div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>   <span class="comment">// Tell the actions module that we have entered a function definition with the</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>   <span class="comment">// specified Declarator for the function.</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>   <a class="code" href="classclang_1_1Decl.html">Decl</a> *Res = TemplateInfo.TemplateParams?</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>       Actions.<a class="code" href="classclang_1_1Sema.html#a62e8c032f1b110d4eeffe7a9ebf4f26a">ActOnStartOfFunctionTemplateDef</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(),</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>                                               *TemplateInfo.TemplateParams, D)</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>     : Actions.<a class="code" href="classclang_1_1Sema.html#a13da73606164b423765ccbf96fb6874e">ActOnStartOfFunctionDef</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), D);</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> </div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>   <span class="comment">// Break out of the ParsingDeclarator context before we parse the body.</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>   D.<a class="code" href="classclang_1_1ParsingDeclarator.html#afcce9326f656018b9420b2de274f4ea9">complete</a>(Res);</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>   </div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>   <span class="comment">// Break out of the ParsingDeclSpec context, too.  This const_cast is</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>   <span class="comment">// safe because we're always the sole owner.</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>   D.<a class="code" href="classclang_1_1ParsingDeclarator.html#ac7729307a2d69cff58fbbd8b69891dbb">getMutableDeclSpec</a>().<a class="code" href="classclang_1_1ParsingDeclSpec.html#a8c879ac27c8f0b2c2a00cae90f3db267">abort</a>();</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> </div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::equal)) {</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>     assert(<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a> && <span class="stringliteral">"Only C++ function definitions have '='"</span>);</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> </div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>     Actions.<a class="code" href="classclang_1_1Sema.html#aaaaf8e0b78e0549d6050d0fdbdc680a9">ActOnFinishFunctionBody</a>(Res, 0, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  </div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>     <span class="keywordtype">bool</span> Delete = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</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> KWLoc;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_delete)) {</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, <a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bba306744f6eb6433073e27523a5ed63184">CPlusPlus11</a> ?</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>            diag::warn_cxx98_compat_deleted_function :</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>            diag::ext_deleted_function);</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> </div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>       KWLoc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>       Actions.<a class="code" href="classclang_1_1Sema.html#ae9d67e740b2b281413365a4f2c53a1a7">SetDeclDeleted</a>(Res, KWLoc);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>       Delete = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_default)) {</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, <a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bba306744f6eb6433073e27523a5ed63184">CPlusPlus11</a> ?</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>            diag::warn_cxx98_compat_defaulted_function :</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>            diag::ext_defaulted_function);</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> </div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>       KWLoc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>       Actions.<a class="code" href="classclang_1_1Sema.html#a5b651de6828d6ded991c1399dcba7967">SetDeclDefaulted</a>(Res, KWLoc);</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>       llvm_unreachable(<span class="stringliteral">"function definition after = not 'delete' or 'default'"</span>);</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>     }</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> </div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma)) {</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(KWLoc, diag::err_default_delete_in_multiple_declaration)</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>         << Delete;</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>       <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::semi);</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>       ExpectAndConsume(tok::semi, diag::err_expected_semi_after,</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>                        Delete ? <span class="stringliteral">"delete"</span> : <span class="stringliteral">"default"</span>, tok::semi);</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> </div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>     <span class="keywordflow">return</span> Res;</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>   }</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> </div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_try))</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>     <span class="keywordflow">return</span> ParseFunctionTryBlock(Res, BodyScope);</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> </div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>   <span class="comment">// If we have a colon, then we're probably parsing a C++</span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>   <span class="comment">// ctor-initializer.</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::colon)) {</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>     ParseConstructorInitializer(Res);</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> </div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>     <span class="comment">// Recover from error.</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>     <span class="keywordflow">if</span> (!Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_brace)) {</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>       BodyScope.Exit();</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>       Actions.<a class="code" href="classclang_1_1Sema.html#aaaaf8e0b78e0549d6050d0fdbdc680a9">ActOnFinishFunctionBody</a>(Res, 0);</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>       <span class="keywordflow">return</span> Res;</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>   } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>     Actions.<a class="code" href="classclang_1_1Sema.html#aac76f3a8eaa0bdc3bd49dba811c4bde2">ActOnDefaultCtorInitializers</a>(Res);</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> </div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>   <span class="comment">// Late attributes are parsed in the same scope as the function body.</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>   <span class="keywordflow">if</span> (LateParsedAttrs)</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>     ParseLexedAttributeList(*LateParsedAttrs, Res, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> </div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>   <span class="keywordflow">return</span> ParseFunctionStatementBody(Res, BodyScope);</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> }</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"></span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">/// ParseKNRParamDeclarations - Parse 'declaration-list[opt]' which provides</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment">/// types for a function with a K&R-style identifier list for arguments.</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"></span><span class="keywordtype">void</span> Parser::ParseKNRParamDeclarations(Declarator &D) {</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>   <span class="comment">// We know that the top-level of this declarator is a function.</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>   <a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html">DeclaratorChunk::FunctionTypeInfo</a> &FTI = D.<a class="code" href="classclang_1_1Declarator.html#aab829e1627079197e630182d9d56a9c6">getFunctionTypeInfo</a>();</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> </div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>   <span class="comment">// Enter function-declaration scope, limiting any declarators to the</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>   <span class="comment">// function prototype scope, including parameter declarators.</span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>   ParseScope PrototypeScope(<span class="keyword">this</span>, <a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7a03e444466b6d5f544bd8fedbe94a7cdb" title="This is a scope that corresponds to the parameters within a function prototype.">Scope::FunctionPrototypeScope</a> |</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>                             <a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7ad0c60d6cb6734034fb8ee9d694e2d854" title="This is a scope that corresponds to the parameters within a function prototype for a function declara...">Scope::FunctionDeclarationScope</a> | <a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7af9dd922f0e23495a79fc93698d6775ff" title="This is a scope that can contain a declaration. Some scopes just contain loop constructs but don't co...">Scope::DeclScope</a>);</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> </div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>   <span class="comment">// Read all the argument declarations.</span></div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>   <span class="keywordflow">while</span> (isDeclarationSpecifier()) {</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</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> DSStart = 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="l01188"></a><span class="lineno"> 1188</span> </div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>     <span class="comment">// Parse the common declaration-specifiers piece.</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>     <a class="code" href="classclang_1_1DeclSpec.html" title="Captures information about "declaration specifiers".">DeclSpec</a> DS(AttrFactory);</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>     ParseDeclarationSpecifiers(DS);</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> </div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>     <span class="comment">// C99 6.9.1p6: 'each declaration in the declaration list shall have at</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>     <span class="comment">// least one declarator'.</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>     <span class="comment">// NOTE: GCC just makes this an ext-warn.  It's not clear what it does with</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>     <span class="comment">// the declarations though.  It's trivial to ignore them, really hard to do</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>     <span class="comment">// anything else with them.</span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::semi)) {</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(DSStart, diag::err_declaration_does_not_declare_param);</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>     }</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> </div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>     <span class="comment">// C99 6.9.1p6: Declarations shall contain no storage-class specifiers other</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>     <span class="comment">// than register.</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>     <span class="keywordflow">if</span> (DS.<a class="code" href="classclang_1_1DeclSpec.html#a21616b8df7b2fd0305197604ab31ca71">getStorageClassSpec</a>() != <a class="code" href="classclang_1_1DeclSpec.html#a4b96d236218cac3d52edb71876f64da4ae411a2c98a47cd177a38f33a67487cc0">DeclSpec::SCS_unspecified</a> &&</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>         DS.<a class="code" href="classclang_1_1DeclSpec.html#a21616b8df7b2fd0305197604ab31ca71">getStorageClassSpec</a>() != <a class="code" href="classclang_1_1DeclSpec.html#a4b96d236218cac3d52edb71876f64da4a9306080f4a4052c6bc3bf6d57a256405">DeclSpec::SCS_register</a>) {</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(DS.<a class="code" href="classclang_1_1DeclSpec.html#a05cd671221b98918a44c6e28b6bbedc1">getStorageClassSpecLoc</a>(),</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>            diag::err_invalid_storage_class_in_func_decl);</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>       DS.<a class="code" href="classclang_1_1DeclSpec.html#a19f2c782115fef841ead93d82bcfffa3">ClearStorageClassSpecs</a>();</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>     }</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>     <span class="keywordflow">if</span> (DS.<a class="code" href="classclang_1_1DeclSpec.html#a3005a209c14bc4666de4294439ca3e33">getThreadStorageClassSpec</a>() != <a class="code" href="classclang_1_1DeclSpec.html#ab401dc1aece0e6eab3b6bbc0a8d3139f">DeclSpec::TSCS_unspecified</a>) {</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(DS.<a class="code" href="classclang_1_1DeclSpec.html#a7d2ff85ac3d0e29082d37ae5f87a57f0">getThreadStorageClassSpecLoc</a>(),</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>            diag::err_invalid_storage_class_in_func_decl);</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>       DS.<a class="code" href="classclang_1_1DeclSpec.html#a19f2c782115fef841ead93d82bcfffa3">ClearStorageClassSpecs</a>();</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>     }</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> </div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>     <span class="comment">// Parse the first declarator attached to this declspec.</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>     Declarator ParmDeclarator(DS, <a class="code" href="classclang_1_1Declarator.html#a1e882aec89a926d4a64b0ac2d6a40156a3d41f68cb3f0b6ee8662782bd2b405e2">Declarator::KNRTypeListContext</a>);</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>     ParseDeclarator(ParmDeclarator);</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> </div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>     <span class="comment">// Handle the full declarator list.</span></div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>     <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>       <span class="comment">// If attributes are present, parse them.</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>       MaybeParseGNUAttributes(ParmDeclarator);</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> </div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>       <span class="comment">// Ask the actions module to compute the type for this declarator.</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>       <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="SemaOverload_8cpp.html#af465899bf43044df83229078154bc2ed">Param</a> =</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>         Actions.<a class="code" href="classclang_1_1Sema.html#a0b8d7bfb05aba685f902ea8cc893d89e">ActOnParamDeclarator</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), ParmDeclarator);</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> </div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>       <span class="keywordflow">if</span> (Param &&</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>           <span class="comment">// A missing identifier has already been diagnosed.</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>           ParmDeclarator.getIdentifier()) {</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> </div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>         <span class="comment">// Scan the argument list looking for the correct param to apply this</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>         <span class="comment">// type.</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; ; ++i) {</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>           <span class="comment">// C99 6.9.1p6: those declarators shall declare only identifiers from</span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>           <span class="comment">// the identifier list.</span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>           <span class="keywordflow">if</span> (i == FTI.<a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html#a278210bb7c3115347babdc92db45de1b">NumArgs</a>) {</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>             <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(ParmDeclarator.getIdentifierLoc(), diag::err_no_matching_param)</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>               << ParmDeclarator.getIdentifier();</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>             <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>           }</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> </div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>           <span class="keywordflow">if</span> (FTI.<a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html#ade47c9f29fe85cb39cc089e8e16fee75">ArgInfo</a>[i].<a class="code" href="structclang_1_1DeclaratorChunk_1_1ParamInfo.html#a8311dbad1d54c76f118a93bbea32a88f">Ident</a> == ParmDeclarator.getIdentifier()) {</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>             <span class="comment">// Reject redefinitions of parameters.</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>             <span class="keywordflow">if</span> (FTI.<a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html#ade47c9f29fe85cb39cc089e8e16fee75">ArgInfo</a>[i].<a class="code" href="structclang_1_1DeclaratorChunk_1_1ParamInfo.html#af9e6c8977877abbb0ad24e595be63dc0">Param</a>) {</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>               <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(ParmDeclarator.getIdentifierLoc(),</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>                    diag::err_param_redefinition)</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>                  << ParmDeclarator.getIdentifier();</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>             } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>               FTI.<a class="code" href="structclang_1_1DeclaratorChunk_1_1FunctionTypeInfo.html#ade47c9f29fe85cb39cc089e8e16fee75">ArgInfo</a>[i].<a class="code" href="structclang_1_1DeclaratorChunk_1_1ParamInfo.html#af9e6c8977877abbb0ad24e595be63dc0">Param</a> = <a class="code" href="SemaOverload_8cpp.html#af465899bf43044df83229078154bc2ed">Param</a>;</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>             }</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>             <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>           }</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>         }</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>       }</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> </div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>       <span class="comment">// If we don't have a comma, it is either the end of the list (a ';') or</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>       <span class="comment">// an error, bail out.</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::comma))</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> </div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>       ParmDeclarator.clear();</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> </div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>       <span class="comment">// Consume the comma.</span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>       ParmDeclarator.setCommaLoc(<a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>());</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">// Parse the next declarator.</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>       ParseDeclarator(ParmDeclarator);</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>     }</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> </div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>     <span class="keywordflow">if</span> (ExpectAndConsumeSemi(diag::err_expected_semi_declaration)) {</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>       <span class="comment">// Skip to end of block or statement</span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>       <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::semi);</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::semi))</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>         <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</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> </div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>   <span class="comment">// The actions module must verify that all arguments were declared.</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>   Actions.<a class="code" href="classclang_1_1Sema.html#ac464f2ee89c8e52ab5aa733f12118c39">ActOnFinishKNRParamDeclarations</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), D, 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="l01284"></a><span class="lineno"> 1284</span> }</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> </div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment"></span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">/// ParseAsmStringLiteral - This is just a normal string-literal, but is not</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment">/// allowed to be a wide string, and is not subject to character translation.</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment">/// [GNU] asm-string-literal:</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment">///         string-literal</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment"></span><a class="code" href="classclang_1_1ActionResult.html">Parser::ExprResult</a> Parser::ParseAsmStringLiteral() {</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>     <span class="keywordflow">case</span> tok::string_literal:</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>     <span class="keywordflow">case</span> tok::utf8_string_literal:</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>     <span class="keywordflow">case</span> tok::utf16_string_literal:</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>     <span class="keywordflow">case</span> tok::utf32_string_literal:</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>     <span class="keywordflow">case</span> tok::wide_string_literal: {</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</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> L = 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="l01302"></a><span class="lineno"> 1302</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_asm_operand_wide_string_literal)</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>         << (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>() == tok::wide_string_literal)</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>         << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(L, L);</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#ad2e38ac7cd6e815b9b7c5708e05bafc1">ExprError</a>();</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>     }</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_expected_string_literal)</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>         << <span class="comment">/*Source='in...'*/</span>0 << <span class="stringliteral">"'asm'"</span>;</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#ad2e38ac7cd6e815b9b7c5708e05bafc1">ExprError</a>();</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>   }</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> </div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>   <span class="keywordflow">return</span> ParseStringLiteralExpression();</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> }</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment"></span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="comment">/// ParseSimpleAsm</span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment">/// [GNU] simple-asm-expr:</span></div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment">///         'asm' '(' asm-string-literal ')'</span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment"></span><a class="code" href="classclang_1_1ActionResult.html">Parser::ExprResult</a> Parser::ParseSimpleAsm(<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> *EndLoc) {</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_asm) && <span class="stringliteral">"Not an asm!"</span>);</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</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="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_volatile)) {</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>     <span class="comment">// Remove from the end of 'asm' to the end of 'volatile'.</span></div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>     <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> RemovalRange(PP.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</a>(Loc),</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>                              PP.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</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="l01329"></a><span class="lineno"> 1329</span> </div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::warn_file_asm_volatile)</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>       << <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(RemovalRange);</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>   }</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> </div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>   <a class="code" href="classclang_1_1BalancedDelimiterTracker.html" title="RAII class that helps handle the parsing of an open/close delimiter pair, such as braces { ...">BalancedDelimiterTracker</a> T(*<span class="keyword">this</span>, tok::l_paren);</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>   <span class="keywordflow">if</span> (T.consumeOpen()) {</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_expected_lparen_after) << <span class="stringliteral">"asm"</span>;</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#ad2e38ac7cd6e815b9b7c5708e05bafc1">ExprError</a>();</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>   }</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> </div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>   <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> Result(ParseAsmStringLiteral());</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> </div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>   <span class="keywordflow">if</span> (Result.isInvalid()) {</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>     <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::r_paren, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">StopAtSemi</a> | <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea7eadfbdad0b0f32d010aa026f79f44d9" title="Stop skipping at specified token, but don't skip the token itself.">StopBeforeMatch</a>);</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>     <span class="keywordflow">if</span> (EndLoc)</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>       *EndLoc = 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="l01347"></a><span class="lineno"> 1347</span>     ConsumeAnyToken();</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>     <span class="comment">// Close the paren and get the location of the end bracket</span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>     T.consumeClose();</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>     <span class="keywordflow">if</span> (EndLoc)</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>       *EndLoc = T.getCloseLocation();</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>   }</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> </div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>   <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> }</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment"></span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment">/// \brief Get the TemplateIdAnnotation from the token and put it in the</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment">/// cleanup pool so that it gets destroyed when parsing the current top level</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment">/// declaration is finished.</span></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment"></span><a class="code" href="structclang_1_1TemplateIdAnnotation.html" title="Information about a template-id annotation token.">TemplateIdAnnotation</a> *Parser::takeTemplateIdAnnotation(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &tok) {</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>   assert(tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_template_id) && <span class="stringliteral">"Expected template-id token"</span>);</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>   <a class="code" href="structclang_1_1TemplateIdAnnotation.html" title="Information about a template-id annotation token.">TemplateIdAnnotation</a> *</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>       Id = <span class="keyword">static_cast<</span><a class="code" href="structclang_1_1TemplateIdAnnotation.html" title="Information about a template-id annotation token.">TemplateIdAnnotation</a> *<span class="keyword">></span>(tok.<a class="code" href="classclang_1_1Token.html#a428dc637d123fb0d48a626eb77c4de25">getAnnotationValue</a>());</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>   <span class="keywordflow">return</span> Id;</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> }</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> </div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="keywordtype">void</span> Parser::AnnotateScopeToken(<a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> &SS, <span class="keywordtype">bool</span> IsNewAnnotation) {</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>   <span class="comment">// Push the current token back into the token stream (or revert it if it is</span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>   <span class="comment">// cached) and use an annotation scope token for current token.</span></div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>   <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#a66603e86335b24a55a5e23494ce5d481">isBacktrackEnabled</a>())</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a8a6768548bf0b22e1de4a3b1af612a3b">RevertCachedTokens</a>(1);</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a281f16dcb4fca3c52652dbc11ed53c1a">EnterToken</a>(Tok);</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>   Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::annot_cxxscope);</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>   Tok.<a class="code" href="classclang_1_1Token.html#acb46f6c2251512aae2c5772e88cc34b3">setAnnotationValue</a>(Actions.<a class="code" href="classclang_1_1Sema.html#a512fe2ac958dcee853c7e1cd7fb8fa42" title="Given a C++ nested-name-specifier, produce an annotation value that the parser can use later to recon...">SaveNestedNameSpecifierAnnotation</a>(SS));</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>   Tok.<a class="code" href="classclang_1_1Token.html#adca69f6d990719cda4438cc12338c4c5">setAnnotationRange</a>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>());</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">// In case the tokens were cached, have Preprocessor replace them</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>   <span class="comment">// with the annotation token.  We don't need to do this if we've</span></div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>   <span class="comment">// just reverted back to a prior state.</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>   <span class="keywordflow">if</span> (IsNewAnnotation)</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a484556d87166b29949edef3935f9fa6b">AnnotateCachedTokens</a>(Tok);</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> <span class="comment"></span></div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="comment">/// \brief Attempt to classify the name at the current token position. This may</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment">/// form a type, scope or primary expression annotation, or replace the token</span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <span class="comment">/// with a typo-corrected keyword. This is only appropriate when the current</span></div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="comment">/// name must refer to an entity which has already been declared.</span></div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment">/// \param IsAddressOfOperand Must be \c true if the name is preceded by an '&'</span></div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment">///        and might possibly have a dependent nested name specifier.</span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment">/// \param CCC Indicates how to perform typo-correction for this name. If NULL,</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment">///        no typo correction will be performed.</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment"></span>Parser::AnnotatedNameKind</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> Parser::TryAnnotateName(<span class="keywordtype">bool</span> IsAddressOfOperand,</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>                         <a class="code" href="classclang_1_1CorrectionCandidateCallback.html" title="Base class for callback objects used by Sema::CorrectTypo to check the validity of a potential typo c...">CorrectionCandidateCallback</a> *CCC) {</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope));</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> </div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>   <span class="keyword">const</span> <span class="keywordtype">bool</span> EnteringContext = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>   <span class="keyword">const</span> <span class="keywordtype">bool</span> WasScopeAnnotation = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope);</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> </div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>   <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> SS;</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a> &&</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>       ParseOptionalCXXScopeSpecifier(SS, <a class="code" href="namespaceclang.html#aeb304ed08ffec14495690938d6bd95e2">ParsedType</a>(), EnteringContext))</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>     <span class="keywordflow">return</span> ANK_Error;</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::identifier) || SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4470b2b22ffe903c05b83ba25d774652" title="An error occurred during parsing of the scope specifier.">isInvalid</a>()) {</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a7754508dc32829e20a23e88354d067af" title="Try to annotate a type or scope token, having already parsed an optional scope specifier. IsNewScope should be true unless the scope specifier was extracted from an existing tok::annot_cxxscope annotation.">TryAnnotateTypeOrScopeTokenAfterScopeSpec</a>(EnteringContext, <span class="keyword">false</span>, SS,</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>                                                   !WasScopeAnnotation))</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>       <span class="keywordflow">return</span> ANK_Error;</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>     <span class="keywordflow">return</span> ANK_Unresolved;</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>   }</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> </div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Name = Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</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> NameLoc = 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="l01417"></a><span class="lineno"> 1417</span> </div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>   <span class="comment">// FIXME: Move the tentative declaration logic into ClassifyName so we can</span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>   <span class="comment">// typo-correct to tentatively-declared identifiers.</span></div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>   <span class="keywordflow">if</span> (isTentativelyDeclared(Name)) {</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>     <span class="comment">// Identifier has been tentatively declared, and thus cannot be resolved as</span></div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>     <span class="comment">// an expression. Fall back to annotating it as a type.</span></div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a7754508dc32829e20a23e88354d067af" title="Try to annotate a type or scope token, having already parsed an optional scope specifier. IsNewScope should be true unless the scope specifier was extracted from an existing tok::annot_cxxscope annotation.">TryAnnotateTypeOrScopeTokenAfterScopeSpec</a>(EnteringContext, <span class="keyword">false</span>, SS,</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>                                                   !WasScopeAnnotation))</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>       <span class="keywordflow">return</span> ANK_Error;</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>     <span class="keywordflow">return</span> Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_typename) ? ANK_Success : ANK_TentativeDecl;</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>   }</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> </div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>   <a class="code" href="classclang_1_1Token.html">Token</a> Next = <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>();</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> </div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>   <span class="comment">// Look up and classify the identifier. We don't perform any typo-correction</span></div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>   <span class="comment">// after a scope specifier, because in general we can't recover from typos</span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>   <span class="comment">// there (eg, after correcting 'A::tempalte B<X>::C', we would need to jump</span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>   <span class="comment">// back into scope specifier parsing).</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>   <a class="code" href="classclang_1_1Sema_1_1NameClassification.html">Sema::NameClassification</a> Classification</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>     = Actions.<a class="code" href="classclang_1_1Sema.html#a08e7b8581021d89b3cde3aeb4fc49bfc" title="Perform name lookup on the given name, classifying it based on the results of name lookup and the fol...">ClassifyName</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), SS, Name, NameLoc, Next,</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>                            IsAddressOfOperand, SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae92a40568ee6a10431af2437af862b07" title="No scope specifier.">isEmpty</a>() ? CCC : 0);</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> </div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>   <span class="keywordflow">switch</span> (Classification.<a class="code" href="classclang_1_1Sema_1_1NameClassification.html#a4b828a1a6efe2b680d2e6498d99e95a6">getKind</a>()) {</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a5ec83b49f90554897f5b7185f581de74">Sema::NC_Error</a>:</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>     <span class="keywordflow">return</span> ANK_Error;</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> </div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a861d2505b887164a1e9874c2c1b6e56d">Sema::NC_Keyword</a>:</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>     <span class="comment">// The identifier was typo-corrected to a keyword.</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>     Tok.<a class="code" href="classclang_1_1Token.html#ae603a1243f89a7aeeabcb4d467c474ff">setIdentifierInfo</a>(Name);</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(Name-><a class="code" href="classclang_1_1IdentifierInfo.html#a66ddbfe9f85f24f25fa29d49d773af86">getTokenID</a>());</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a3301e9a255d1f2a580227adda2df15ab">TypoCorrectToken</a>(Tok);</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>     <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a22c85914d194b1a4dd94bd10da20023b" title="A scope specifier is present, but may be valid or invalid.">isNotEmpty</a>())</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>       AnnotateScopeToken(SS, !WasScopeAnnotation);</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>     <span class="comment">// We've "annotated" this as a keyword.</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>     <span class="keywordflow">return</span> ANK_Success;</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> </div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a1bac84bafcbc006bbb92abf44fb8ccc3">Sema::NC_Unknown</a>:</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>     <span class="comment">// It's not something we know about. Leave it unannotated.</span></div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> </div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a8f2d9367681d37ff4c800a0004f263e9">Sema::NC_Type</a>:</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::annot_typename);</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>     setTypeAnnotation(Tok, Classification.<a class="code" href="classclang_1_1Sema_1_1NameClassification.html#aa0a230a86dc0989fe7ce956fe16ac54c">getType</a>());</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>     Tok.<a class="code" href="classclang_1_1Token.html#a099e5c28a0dd559fc4483a30976b51af">setAnnotationEndLoc</a>(NameLoc);</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>     <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a22c85914d194b1a4dd94bd10da20023b" title="A scope specifier is present, but may be valid or invalid.">isNotEmpty</a>())</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>       Tok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a7c9a0b3ec2f55652cd17b37b7008cceb">getBeginLoc</a>());</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a484556d87166b29949edef3935f9fa6b">AnnotateCachedTokens</a>(Tok);</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>     <span class="keywordflow">return</span> ANK_Success;</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> </div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a25fea8a20b56b0b87a042ef1191ca5df">Sema::NC_Expression</a>:</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::annot_primary_expr);</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>     setExprAnnotation(Tok, Classification.<a class="code" href="classclang_1_1Sema_1_1NameClassification.html#a66fcc3ce87b27e1fbbee9e55e8e46e25">getExpression</a>());</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>     Tok.<a class="code" href="classclang_1_1Token.html#a099e5c28a0dd559fc4483a30976b51af">setAnnotationEndLoc</a>(NameLoc);</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>     <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a22c85914d194b1a4dd94bd10da20023b" title="A scope specifier is present, but may be valid or invalid.">isNotEmpty</a>())</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>       Tok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a7c9a0b3ec2f55652cd17b37b7008cceb">getBeginLoc</a>());</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a484556d87166b29949edef3935f9fa6b">AnnotateCachedTokens</a>(Tok);</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>     <span class="keywordflow">return</span> ANK_Success;</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> </div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a5c9aad16c4120a2e4a1833c029eeb937">Sema::NC_TypeTemplate</a>:</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>     <span class="keywordflow">if</span> (Next.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::less)) {</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>       <span class="comment">// This may be a type template being used as a template template argument.</span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>       <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a22c85914d194b1a4dd94bd10da20023b" title="A scope specifier is present, but may be valid or invalid.">isNotEmpty</a>())</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>         AnnotateScopeToken(SS, !WasScopeAnnotation);</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>       <span class="keywordflow">return</span> ANK_TemplateName;</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>     }</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>     <span class="comment">// Fall through.</span></div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a3c69433beb63a7e54e6f6b6eb16b9b41">Sema::NC_VarTemplate</a>:</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a6467b974bf46626dc89ce3e8e0dfd669">Sema::NC_FunctionTemplate</a>: {</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>     <span class="comment">// We have a type, variable or function template followed by '<'.</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>     <a class="code" href="classclang_1_1UnqualifiedId.html" title="Represents a C++ unqualified-id that has been parsed.">UnqualifiedId</a> Id;</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>     Id.<a class="code" href="classclang_1_1UnqualifiedId.html#a20feecdc75f0d057e2b280446a03988e" title="Specify that this unqualified-id was parsed as an identifier.">setIdentifier</a>(Name, NameLoc);</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>     <span class="keywordflow">if</span> (AnnotateTemplateIdToken(</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>             <a class="code" href="classclang_1_1OpaquePtr.html#ada2a201949e5b234c4b55c8ce996b68e">TemplateTy::make</a>(Classification.<a class="code" href="classclang_1_1Sema_1_1NameClassification.html#a475150ad84d13e8c2aadca9e17c1d0d3">getTemplateName</a>()),</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>             Classification.<a class="code" href="classclang_1_1Sema_1_1NameClassification.html#a929e34896b312cfa1b4bbc73a74a2731">getTemplateNameKind</a>(), SS, <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>(), Id))</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>       <span class="keywordflow">return</span> ANK_Error;</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>     <span class="keywordflow">return</span> ANK_Success;</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>   }</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> </div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a4abffb069315b100ef46d9822d7672f3a073673b0fd1a50c7e0d88bf31ccbb7e4">Sema::NC_NestedNameSpecifier</a>:</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>     llvm_unreachable(<span class="stringliteral">"already parsed nested name specifier"</span>);</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>   }</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> </div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>   <span class="comment">// Unable to classify the name, but maybe we can annotate a scope specifier.</span></div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>   <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a22c85914d194b1a4dd94bd10da20023b" title="A scope specifier is present, but may be valid or invalid.">isNotEmpty</a>())</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>     AnnotateScopeToken(SS, !WasScopeAnnotation);</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>   <span class="keywordflow">return</span> ANK_Unresolved;</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> }</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> </div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> <span class="keywordtype">bool</span> Parser::TryKeywordIdentFallback(<span class="keywordtype">bool</span> DisableKeyword) {</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::identifier));</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>   <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::ext_keyword_as_ident)</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>     << PP.<a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(Tok)</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>     << DisableKeyword;</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>   <span class="keywordflow">if</span> (DisableKeyword)</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>     Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#aed9e0da317d7a2686699cf2b835ccb4a" title="Revert TokenID to tok::identifier; used for GNU libstdc++ 4.2 compatibility.">RevertTokenIDToIdentifier</a>();</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>   Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::identifier);</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> }</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="comment"></span></div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> <span class="comment">/// TryAnnotateTypeOrScopeToken - If the current token position is on a</span></div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="comment">/// typename (possibly qualified in C++) or a C++ scope specifier not followed</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <span class="comment">/// by a typename, TryAnnotateTypeOrScopeToken will replace one or more tokens</span></div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> <span class="comment">/// with a single annotation token representing the typename or C++ scope</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> <span class="comment">/// respectively.</span></div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment">/// This simplifies handling of C++ scope specifiers and allows efficient</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="comment">/// backtracking without the need to re-parse and resolve nested-names and</span></div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment">/// typenames.</span></div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="comment">/// It will mainly be called when we expect to treat identifiers as typenames</span></div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> <span class="comment">/// (if they are typenames). For example, in C we do not expect identifiers</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="comment">/// inside expressions to be treated as typenames so it will not be called</span></div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> <span class="comment">/// for expressions in C.</span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> <span class="comment">/// The benefit for C/ObjC is that a typename will be annotated and</span></div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> <span class="comment">/// Actions.getTypeName will not be needed to be called again (e.g. getTypeName</span></div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> <span class="comment">/// will not be called twice, once to check whether we have a declaration</span></div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> <span class="comment">/// specifier, and another one to get the actual type inside</span></div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> <span class="comment">/// ParseDeclarationSpecifiers).</span></div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> <span class="comment">/// This returns true if an error occurred.</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> <span class="comment">/// Note that this routine emits an error if you call it with ::new or ::delete</span></div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> <span class="comment">/// as the current tokens, so only call it in contexts where these are invalid.</span></div>
+<div class="line"><a name="l01539"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a6a05dc9fb5788cbe37c727e89324c04d"> 1539</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Parser.html#a6a05dc9fb5788cbe37c727e89324c04d">Parser::TryAnnotateTypeOrScopeToken</a>(<span class="keywordtype">bool</span> EnteringContext, <span class="keywordtype">bool</span> NeedType) {</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>   assert((Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::coloncolon)</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>           || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_typename) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope)</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>           || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_decltype) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_template_id))</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>           && <span class="stringliteral">"Cannot be a type or scope token!"</span>);</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> </div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_typename)) {</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>     <span class="comment">// MSVC lets you do stuff like:</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>     <span class="comment">//   typename typedef T_::D D;</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>     <span class="comment">// We will consume the typedef token here and put it back after we have</span></div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>     <span class="comment">// parsed the first identifier, transforming it into something more like:</span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>     <span class="comment">//   typename T_::D typedef D;</span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().MicrosoftMode && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_typedef)) {</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>       <a class="code" href="classclang_1_1Token.html">Token</a> TypedefToken;</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(TypedefToken);</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>       <span class="keywordtype">bool</span> Result = <a class="code" href="classclang_1_1Parser.html#a6a05dc9fb5788cbe37c727e89324c04d">TryAnnotateTypeOrScopeToken</a>(EnteringContext, NeedType);</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a281f16dcb4fca3c52652dbc11ed53c1a">EnterToken</a>(Tok);</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>       Tok = TypedefToken;</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>       <span class="keywordflow">if</span> (!Result)</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>         <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</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>(), diag::warn_expected_qualified_after_typename);</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>       <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>     }</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> </div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>     <span class="comment">// Parse a C++ typename-specifier, e.g., "typename T::type".</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>     <span class="comment">//   typename-specifier:</span></div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>     <span class="comment">//     'typename' '::' [opt] nested-name-specifier identifier</span></div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>     <span class="comment">//     'typename' '::' [opt] nested-name-specifier template [opt]</span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>     <span class="comment">//            simple-template-id</span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</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> TypenameLoc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>     <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> SS;</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>     <span class="keywordflow">if</span> (ParseOptionalCXXScopeSpecifier(SS, <span class="comment">/*ObjectType=*/</span><a class="code" href="namespaceclang.html#aeb304ed08ffec14495690938d6bd95e2">ParsedType</a>(), </div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>                                        <span class="comment">/*EnteringContext=*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>                                        0, <span class="comment">/*IsTypename*/</span><span class="keyword">true</span>))</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>     <span class="keywordflow">if</span> (!SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>()) {</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_template_id) ||</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>           Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_decltype)) {</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>         <span class="comment">// Attempt to recover by skipping the invalid 'typename'</span></div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>         <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_decltype) ||</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>             (!<a class="code" href="classclang_1_1Parser.html#a6a05dc9fb5788cbe37c727e89324c04d">TryAnnotateTypeOrScopeToken</a>(EnteringContext, NeedType) &&</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>              Tok.<a class="code" href="classclang_1_1Token.html#aac5deee86f22608a095aa95d27ec464f" title="Return true if this is any of tok::annot_* kind tokens.">isAnnotation</a>())) {</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>           <span class="keywordtype">unsigned</span> DiagID = diag::err_expected_qualified_after_typename;</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>           <span class="comment">// MS compatibility: MSVC permits using known types with typename.</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>           <span class="comment">// e.g. "typedef typename T* pointer_type"</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>           <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().MicrosoftExt)</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>             DiagID = diag::warn_expected_qualified_after_typename;</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>           <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</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>(), DiagID);</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>           <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>         }</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>       }</div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> </div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</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>(), diag::err_expected_qualified_after_typename);</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>     }</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> </div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>     <a class="code" href="classclang_1_1ActionResult.html">TypeResult</a> Ty;</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier)) {</div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>       <span class="comment">// FIXME: check whether the next token is '<', first!</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>       Ty = Actions.<a class="code" href="classclang_1_1Sema.html#a6d694497697fb394cf76dafe1ab63ebb" title="Called when the parser has parsed a C++ typename specifier, e.g., "typename T::type".">ActOnTypenameType</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), TypenameLoc, SS, </div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>                                      *Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(),</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>                                      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="l01602"></a><span class="lineno"> 1602</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_template_id)) {</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>       <a class="code" href="structclang_1_1TemplateIdAnnotation.html" title="Information about a template-id annotation token.">TemplateIdAnnotation</a> *TemplateId = takeTemplateIdAnnotation(Tok);</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>       <span class="keywordflow">if</span> (TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a3cc5d86a615ad829824dd35d8f3d7ee6" title="The kind of template that Template refers to.">Kind</a> == <a class="code" href="namespaceclang.html#aba1f53f66be2f1991ebd6cda5d781ae8a8845fc22ae93e779a819020be40a7375">TNK_Function_template</a>) {</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>         <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_typename_refers_to_non_type_template)</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>           << Tok.<a class="code" href="classclang_1_1Token.html#a4912ff2ace18d707656b6d5e1605512a" title="SourceRange of the group of tokens that this annotation token represents.">getAnnotationRange</a>();</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>       }</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> </div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>       <a class="code" href="namespaceclang.html#a63c1f5ef934d389064c7460dfec0bc8f">ASTTemplateArgsPtr</a> TemplateArgsPtr(TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a048f5ec7266f29a9fcc2f7c71dee1ada" title="Retrieves a pointer to the template arguments.">getTemplateArgs</a>(),</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>                                          TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a4ff217ef52bf7be39966e73e62c03a16" title="NumArgs - The number of template arguments.">NumArgs</a>);</div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> </div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>       Ty = Actions.<a class="code" href="classclang_1_1Sema.html#a6d694497697fb394cf76dafe1ab63ebb" title="Called when the parser has parsed a C++ typename specifier, e.g., "typename T::type".">ActOnTypenameType</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), TypenameLoc, SS,</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>                                      TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#ac74fea6c9b7998623c82823553662e4e">TemplateKWLoc</a>,</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>                                      TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#ade8e150daa0537209d2d6934b2a52ec2">Template</a>,</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>                                      TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a6e495b35c0172af7838719f98b6296d9">TemplateNameLoc</a>,</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>                                      TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a85b693f9db77c512d73f7609950ea5d6">LAngleLoc</a>,</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>                                      TemplateArgsPtr,</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>                                      TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a7b7282dfba3c5a11304e3e96495f2300">RAngleLoc</a>);</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_expected_type_name_after_typename)</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>         << SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>();</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>     }</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>     <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> EndLoc = Tok.<a class="code" href="classclang_1_1Token.html#ac10b7f38e36db034e54e4fd8a638ebe4">getLastLoc</a>();</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::annot_typename);</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>     setTypeAnnotation(Tok, Ty.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>() ? <a class="code" href="namespaceclang.html#aeb304ed08ffec14495690938d6bd95e2">ParsedType</a>() : Ty.<a class="code" href="classclang_1_1ActionResult.html#a75d6bbdafaa638e85809e113629401ca">get</a>());</div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>     Tok.<a class="code" href="classclang_1_1Token.html#a099e5c28a0dd559fc4483a30976b51af">setAnnotationEndLoc</a>(EndLoc);</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>     Tok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(TypenameLoc);</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a484556d87166b29949edef3935f9fa6b">AnnotateCachedTokens</a>(Tok);</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>   }</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> </div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>   <span class="comment">// Remembers whether the token was originally a scope annotation.</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>   <span class="keywordtype">bool</span> WasScopeAnnotation = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_cxxscope);</div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> </div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>   <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> SS;</div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a>)</div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>     <span class="keywordflow">if</span> (ParseOptionalCXXScopeSpecifier(SS, <a class="code" href="namespaceclang.html#aeb304ed08ffec14495690938d6bd95e2">ParsedType</a>(), EnteringContext))</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> </div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7754508dc32829e20a23e88354d067af" title="Try to annotate a type or scope token, having already parsed an optional scope specifier. IsNewScope should be true unless the scope specifier was extracted from an existing tok::annot_cxxscope annotation.">TryAnnotateTypeOrScopeTokenAfterScopeSpec</a>(EnteringContext, NeedType,</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>                                                    SS, !WasScopeAnnotation);</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> }</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> <span class="comment"></span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="comment">/// \brief Try to annotate a type or scope token, having already parsed an</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> <span class="comment">/// optional scope specifier. \p IsNewScope should be \c true unless the scope</span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> <span class="comment">/// specifier was extracted from an existing tok::annot_cxxscope annotation.</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#a7754508dc32829e20a23e88354d067af"> 1650</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Parser.html#a7754508dc32829e20a23e88354d067af" title="Try to annotate a type or scope token, having already parsed an optional scope specifier. IsNewScope should be true unless the scope specifier was extracted from an existing tok::annot_cxxscope annotation.">Parser::TryAnnotateTypeOrScopeTokenAfterScopeSpec</a>(<span class="keywordtype">bool</span> EnteringContext,</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>                                                        <span class="keywordtype">bool</span> NeedType,</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>                                                        <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> &SS,</div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>                                                        <span class="keywordtype">bool</span> IsNewScope) {</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier)) {</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>     <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *CorrectedII = 0;</div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>     <span class="comment">// Determine whether the identifier is a type name.</span></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1OpaquePtr.html">ParsedType</a> Ty = Actions.<a class="code" href="classclang_1_1Sema.html#a3bdae6d7d92cb79777f2bcaea9b1c4b0" title="If the identifier refers to a type name within this scope, return the declaration of that type...">getTypeName</a>(*Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(),</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>                                             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>(), <a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(),</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>                                             &SS, <span class="keyword">false</span>, </div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>                                             <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::period),</div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>                                             <a class="code" href="namespaceclang.html#aeb304ed08ffec14495690938d6bd95e2">ParsedType</a>(),</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>                                             <span class="comment">/*IsCtorOrDtorName=*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>                                             <span class="comment">/*NonTrivialTypeSourceInfo*/</span><span class="keyword">true</span>,</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>                                             NeedType ? &CorrectedII : <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)) {</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>       <span class="comment">// A FixIt was applied as a result of typo correction</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>       <span class="keywordflow">if</span> (CorrectedII)</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>         Tok.<a class="code" href="classclang_1_1Token.html#ae603a1243f89a7aeeabcb4d467c474ff">setIdentifierInfo</a>(CorrectedII);</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>       <span class="comment">// This is a typename. Replace the current token in-place with an</span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>       <span class="comment">// annotation type token.</span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>       Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::annot_typename);</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>       setTypeAnnotation(Tok, Ty);</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>       Tok.<a class="code" href="classclang_1_1Token.html#a099e5c28a0dd559fc4483a30976b51af">setAnnotationEndLoc</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="l01673"></a><span class="lineno"> 1673</span>       <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a22c85914d194b1a4dd94bd10da20023b" title="A scope specifier is present, but may be valid or invalid.">isNotEmpty</a>()) <span class="comment">// it was a C++ qualified type name.</span></div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>         Tok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a7c9a0b3ec2f55652cd17b37b7008cceb">getBeginLoc</a>());</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> </div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>       <span class="comment">// In case the tokens were cached, have Preprocessor replace</span></div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>       <span class="comment">// them with the annotation token.</span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a484556d87166b29949edef3935f9fa6b">AnnotateCachedTokens</a>(Tok);</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>     }</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> </div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a>) {</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>       <span class="comment">// If we're in C, we can't have :: tokens at all (the lexer won't return</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>       <span class="comment">// them).  If the identifier is not a type, then it can't be scope either,</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>       <span class="comment">// just early exit.</span></div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>     }</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> </div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>     <span class="comment">// If this is a template-id, annotate with a template-id or type token.</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().is(tok::less)) {</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>       <a class="code" href="classclang_1_1OpaquePtr.html">TemplateTy</a> Template;</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>       <a class="code" href="classclang_1_1UnqualifiedId.html" title="Represents a C++ unqualified-id that has been parsed.">UnqualifiedId</a> <a class="code" href="classclang_1_1TemplateName.html" title="Represents a C++ template name within the type system.">TemplateName</a>;</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>       TemplateName.<a class="code" href="classclang_1_1UnqualifiedId.html#a20feecdc75f0d057e2b280446a03988e" title="Specify that this unqualified-id was parsed as an identifier.">setIdentifier</a>(Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</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="l01694"></a><span class="lineno"> 1694</span>       <span class="keywordtype">bool</span> MemberOfUnknownSpecialization;</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>       <span class="keywordflow">if</span> (<a class="code" href="namespaceclang.html#aba1f53f66be2f1991ebd6cda5d781ae8" title="Specifies the kind of template name that an identifier refers to.">TemplateNameKind</a> TNK</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>           = Actions.<a class="code" href="classclang_1_1Sema.html#ac34002cea58106653efe58f4f01112b1">isTemplateName</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), SS,</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>                                    <span class="comment">/*hasTemplateKeyword=*/</span><span class="keyword">false</span>, TemplateName,</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>                                    <span class="comment">/*ObjectType=*/</span> <a class="code" href="namespaceclang.html#aeb304ed08ffec14495690938d6bd95e2">ParsedType</a>(),</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>                                    EnteringContext,</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>                                    Template, MemberOfUnknownSpecialization)) {</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>         <span class="comment">// Consume the identifier.</span></div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>         <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>         <span class="keywordflow">if</span> (AnnotateTemplateIdToken(Template, TNK, SS, <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="l01704"></a><span class="lineno"> 1704</span>                                     TemplateName)) {</div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>           <span class="comment">// If an unrecoverable error occurred, we need to return true here,</span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>           <span class="comment">// because the token stream is in a damaged state.  We may not return</span></div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>           <span class="comment">// a valid identifier.</span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>           <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>         }</div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>       }</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>     }</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> </div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>     <span class="comment">// The current token, which is either an identifier or a</span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>     <span class="comment">// template-id, is not part of the annotation. Fall through to</span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>     <span class="comment">// push that token back into the stream and complete the C++ scope</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>     <span class="comment">// specifier annotation.</span></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">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_template_id)) {</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>     <a class="code" href="structclang_1_1TemplateIdAnnotation.html" title="Information about a template-id annotation token.">TemplateIdAnnotation</a> *TemplateId = takeTemplateIdAnnotation(Tok);</div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>     <span class="keywordflow">if</span> (TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a3cc5d86a615ad829824dd35d8f3d7ee6" title="The kind of template that Template refers to.">Kind</a> == <a class="code" href="namespaceclang.html#aba1f53f66be2f1991ebd6cda5d781ae8a0f3e8265c71aa000cff6863ee506b898">TNK_Type_template</a>) {</div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>       <span class="comment">// A template-id that refers to a type was parsed into a</span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>       <span class="comment">// template-id annotation in a context where we weren't allowed</span></div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>       <span class="comment">// to produce a type annotation token. Update the template-id</span></div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>       <span class="comment">// annotation token to a type annotation token now.</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>       AnnotateTemplateIdTokenAsType();</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (TemplateId-><a class="code" href="structclang_1_1TemplateIdAnnotation.html#a3cc5d86a615ad829824dd35d8f3d7ee6" title="The kind of template that Template refers to.">Kind</a> == <a class="code" href="namespaceclang.html#aba1f53f66be2f1991ebd6cda5d781ae8a047ba22504dd3d59af6952015595cd41">TNK_Var_template</a>)</div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>   }</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> </div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>   <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae92a40568ee6a10431af2437af862b07" title="No scope specifier.">isEmpty</a>())</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> </div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>   <span class="comment">// A C++ scope specifier that isn't followed by a typename.</span></div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>   AnnotateScopeToken(SS, IsNewScope);</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> }</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> <span class="comment"></span></div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> <span class="comment">/// TryAnnotateScopeToken - Like TryAnnotateTypeOrScopeToken but only</span></div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> <span class="comment">/// annotates C++ scope specifiers and template-ids.  This returns</span></div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="comment">/// true if there was an error that could not be recovered from.</span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="comment">/// Note that this routine emits an error if you call it with ::new or ::delete</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> <span class="comment">/// as the current tokens, so only call it in contexts where these are invalid.</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"><a class="code" href="classclang_1_1Parser.html#af6d88d3c2f1c4b03b72d93bde3f719b0"> 1746</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Parser.html#af6d88d3c2f1c4b03b72d93bde3f719b0">Parser::TryAnnotateCXXScopeToken</a>(<span class="keywordtype">bool</span> EnteringContext) {</div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>   assert(<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().<a class="code" href="namespaceclang_1_1frontend.html#a09dfa01c4e997a3794d80922c5e853bbaf89a7ac6211aecefb5f7ecc17d3ebed4">CPlusPlus</a> &&</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>          <span class="stringliteral">"Call sites of this function should be guarded by checking for C++"</span>);</div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>   assert((Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::coloncolon) ||</div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>           (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::annot_template_id) && <a class="code" href="classclang_1_1Parser.html#a2807f5c9175ce6f3e43fa9cca9690020">NextToken</a>().<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::coloncolon)) ||</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>          Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw_decltype)) && <span class="stringliteral">"Cannot be a type or scope token!"</span>);</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> </div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>   <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> SS;</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>   <span class="keywordflow">if</span> (ParseOptionalCXXScopeSpecifier(SS, <a class="code" href="namespaceclang.html#aeb304ed08ffec14495690938d6bd95e2">ParsedType</a>(), EnteringContext))</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>   <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae92a40568ee6a10431af2437af862b07" title="No scope specifier.">isEmpty</a>())</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> </div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>   AnnotateScopeToken(SS, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</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> <span class="keywordtype">bool</span> Parser::isTokenEqualOrEqualTypo() {</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</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> Kind = Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>();</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>   <span class="keywordflow">switch</span> (Kind) {</div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>   <span class="keywordflow">case</span> tok::ampequal:            <span class="comment">// &=</span></div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>   <span class="keywordflow">case</span> tok::starequal:           <span class="comment">// *=</span></div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>   <span class="keywordflow">case</span> tok::plusequal:           <span class="comment">// +=</span></div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>   <span class="keywordflow">case</span> tok::minusequal:          <span class="comment">// -=</span></div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>   <span class="keywordflow">case</span> tok::exclaimequal:        <span class="comment">// !=</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>   <span class="keywordflow">case</span> tok::slashequal:          <span class="comment">// /=</span></div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>   <span class="keywordflow">case</span> tok::percentequal:        <span class="comment">// %=</span></div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>   <span class="keywordflow">case</span> tok::lessequal:           <span class="comment">// <=</span></div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>   <span class="keywordflow">case</span> tok::lesslessequal:       <span class="comment">// <<=</span></div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>   <span class="keywordflow">case</span> tok::greaterequal:        <span class="comment">// >=</span></div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>   <span class="keywordflow">case</span> tok::greatergreaterequal: <span class="comment">// >>=</span></div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>   <span class="keywordflow">case</span> tok::caretequal:          <span class="comment">// ^=</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>   <span class="keywordflow">case</span> tok::pipeequal:           <span class="comment">// |=</span></div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>   <span class="keywordflow">case</span> tok::equalequal:          <span class="comment">// ==</span></div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_invalid_token_after_declarator_suggest_equal)</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>       << <a class="code" href="namespaceclang_1_1tok.html#a44add8c57b584c0f73549f5b3b649ee8" title="Determines the spelling of simple punctuation tokens like '!' or '', and returns NULL for literal and...">getTokenSimpleSpelling</a>(Kind)</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>       << <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(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="stringliteral">"="</span>);</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>   <span class="keywordflow">case</span> tok::equal:</div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>   }</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> }</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> </div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</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> Parser::handleUnexpectedCodeCompletionToken() {</div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion));</div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>   PrevTokLocation = 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="l01793"></a><span class="lineno"> 1793</span> </div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Scope.html">Scope</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a> = <a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(); <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>; <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a> = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>->getParent()) {</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>     <span class="keywordflow">if</span> (<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>->getFlags() & <a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7aec9cad8f5dd22da19c76343a52dd6a2d" title="This indicates that the scope corresponds to a function, which means that labels are set here...">Scope::FnScope</a>) {</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>       Actions.<a class="code" href="classclang_1_1Sema.html#ac525aae0ab06911b93313e480d3bc9c4">CodeCompleteOrdinaryName</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), <a class="code" href="classclang_1_1Sema.html#a9920bd1044f1c4fa6eaaf4097e5263e4a09942d4201a7bc4d39eae48d9ce4ac73" title="Code completion occurs within the body of a function on a recovery path, where we do not have a speci...">Sema::PCC_RecoveryInFunction</a>);</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>       cutOffParsing();</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>       <span class="keywordflow">return</span> PrevTokLocation;</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>     }</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>     </div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>     <span class="keywordflow">if</span> (<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>->getFlags() & <a class="code" href="classclang_1_1Scope.html#afa7e82b8e23f84d0d73e27953b9afab7a9c46440a665ea4d88f8811bb705cbd4e" title="The scope of a struct/union/class definition.">Scope::ClassScope</a>) {</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>       Actions.<a class="code" href="classclang_1_1Sema.html#ac525aae0ab06911b93313e480d3bc9c4">CodeCompleteOrdinaryName</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), <a class="code" href="classclang_1_1Sema.html#a9920bd1044f1c4fa6eaaf4097e5263e4a61fefe0023931de1f9bc2c80b2fa4f50" title="Code completion occurs within a class, struct, or union.">Sema::PCC_Class</a>);</div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>       cutOffParsing();</div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>       <span class="keywordflow">return</span> PrevTokLocation;</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>     }</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>   }</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>   </div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>   Actions.<a class="code" href="classclang_1_1Sema.html#ac525aae0ab06911b93313e480d3bc9c4">CodeCompleteOrdinaryName</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), Sema::PCC_Namespace);</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>   cutOffParsing();</div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>   <span class="keywordflow">return</span> PrevTokLocation;</div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> }</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> </div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="comment">// Anchor the Parser::FieldCallback vtable to this translation unit.</span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <span class="comment">// We use a spurious method instead of the destructor because</span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> <span class="comment">// destroying FieldCallbacks can actually be slightly</span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> <span class="comment">// performance-sensitive.</span></div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> <span class="keywordtype">void</span> Parser::FieldCallback::_anchor() {</div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> }</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> </div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> <span class="comment">// Code-completion pass-through functions</span></div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> </div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span> <span class="keywordtype">void</span> Parser::CodeCompleteDirective(<span class="keywordtype">bool</span> InConditional) {</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>   Actions.<a class="code" href="classclang_1_1Sema.html#ae609d192175d08eee96cd7e704dcea77">CodeCompletePreprocessorDirective</a>(InConditional);</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> }</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> </div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> <span class="keywordtype">void</span> Parser::CodeCompleteInConditionalExclusion() {</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>   Actions.<a class="code" href="classclang_1_1Sema.html#a599995d8507c85d47708a6f2334581ef">CodeCompleteInPreprocessorConditionalExclusion</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>());</div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> }</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> </div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> <span class="keywordtype">void</span> Parser::CodeCompleteMacroName(<span class="keywordtype">bool</span> IsDefinition) {</div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>   Actions.<a class="code" href="classclang_1_1Sema.html#ac372fd4f17fe0694fc5493647358f7af">CodeCompletePreprocessorMacroName</a>(IsDefinition);</div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> }</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> </div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> <span class="keywordtype">void</span> Parser::CodeCompletePreprocessorExpression() { </div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>   Actions.<a class="code" href="classclang_1_1Sema.html#aec2b6ea1f05dbda5f5ab9934784c2c79">CodeCompletePreprocessorExpression</a>();</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> }</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> </div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> <span class="keywordtype">void</span> Parser::CodeCompleteMacroArgument(<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Macro,</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</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_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a>,</div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>                                        <span class="keywordtype">unsigned</span> ArgumentIndex) {</div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>   Actions.<a class="code" href="classclang_1_1Sema.html#a282bed55f7f716bf7b23b19df75eea0c">CodeCompletePreprocessorMacroArgument</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), Macro, MacroInfo, </div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>                                                 ArgumentIndex);</div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span> }</div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span> </div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> <span class="keywordtype">void</span> Parser::CodeCompleteNaturalLanguage() {</div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>   Actions.<a class="code" href="classclang_1_1Sema.html#a80700e470dfaaee4377902ff7cc9a31f">CodeCompleteNaturalLanguage</a>();</div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> }</div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span> </div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> <span class="keywordtype">bool</span> Parser::ParseMicrosoftIfExistsCondition(IfExistsCondition& Result) {</div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>   assert((Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___if_exists) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___if_not_exists)) &&</div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>          <span class="stringliteral">"Expected '__if_exists' or '__if_not_exists'"</span>);</div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>   Result.IsIfExists = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::kw___if_exists);</div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>   Result.KeywordLoc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> </div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>   <a class="code" href="classclang_1_1BalancedDelimiterTracker.html" title="RAII class that helps handle the parsing of an open/close delimiter pair, such as braces { ...">BalancedDelimiterTracker</a> T(*<span class="keyword">this</span>, tok::l_paren);</div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>   <span class="keywordflow">if</span> (T.consumeOpen()) {</div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_expected_lparen_after) </div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>       << (Result.IsIfExists? <span class="stringliteral">"__if_exists"</span> : <span class="stringliteral">"__if_not_exists"</span>);</div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>   }</div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>   </div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>   <span class="comment">// Parse nested-name-specifier.</span></div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>   ParseOptionalCXXScopeSpecifier(Result.SS, <a class="code" href="classclang_1_1OpaquePtr.html">ParsedType</a>(), </div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>                                  <span class="comment">/*EnteringContext=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> </div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>   <span class="comment">// Check nested-name specifier.</span></div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>   <span class="keywordflow">if</span> (Result.SS.isInvalid()) {</div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>     T.skipToEnd();</div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>   }</div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> </div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>   <span class="comment">// Parse the unqualified-id.</span></div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</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> TemplateKWLoc; <span class="comment">// FIXME: parsed, but unused.</span></div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Parser.html#a1825dac9fa2dbbc90288b97f2c14eba6" title="Parse a C++ unqualified-id (or a C identifier), which describes the name of an entity.">ParseUnqualifiedId</a>(Result.SS, <span class="keyword">false</span>, <span class="keyword">true</span>, <span class="keyword">true</span>, <a class="code" href="classclang_1_1OpaquePtr.html">ParsedType</a>(),</div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>                          TemplateKWLoc, Result.Name)) {</div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>     T.skipToEnd();</div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>   }</div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> </div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>   <span class="keywordflow">if</span> (T.consumeClose())</div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</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">// Check if the symbol exists.</span></div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>   <span class="keywordflow">switch</span> (Actions.<a class="code" href="classclang_1_1Sema.html#a90173a992fe0bd18a0c1417be4855d55">CheckMicrosoftIfExistsSymbol</a>(<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>(), Result.KeywordLoc,</div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>                                                Result.IsIfExists, Result.SS, </div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>                                                Result.Name)) {</div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a18dec4ad5afebe6cb74a08b69084a92caf4df63b4cf23a847217eb7fb4fea0f93" title="The symbol exists.">Sema::IER_Exists</a>:</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>     Result.Behavior = Result.IsIfExists ? IEB_Parse : IEB_Skip;</div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> </div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a18dec4ad5afebe6cb74a08b69084a92ca92b23c8026bb247809b950fa3d15601e" title="The symbol does not exist.">Sema::IER_DoesNotExist</a>:</div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>     Result.Behavior = !Result.IsIfExists ? IEB_Parse : IEB_Skip;</div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> </div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a18dec4ad5afebe6cb74a08b69084a92cabb2839527505c7f3edaf692c0375b074" title="The name is a dependent name, so the results will differ from one instantiation to the next...">Sema::IER_Dependent</a>:</div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>     Result.Behavior = IEB_Dependent;</div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>     <span class="keywordflow">break</span>;</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="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#a18dec4ad5afebe6cb74a08b69084a92cae767d0f8a3c6fbc9792c559fd0622027" title="An error occurred.">Sema::IER_Error</a>:</div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>   }</div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> </div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span> }</div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span> </div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> <span class="keywordtype">void</span> Parser::ParseMicrosoftIfExistsExternalDeclaration() {</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>   IfExistsCondition Result;</div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>   <span class="keywordflow">if</span> (ParseMicrosoftIfExistsCondition(Result))</div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>   </div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>   <a class="code" href="classclang_1_1BalancedDelimiterTracker.html" title="RAII class that helps handle the parsing of an open/close delimiter pair, such as braces { ...">BalancedDelimiterTracker</a> Braces(*<span class="keyword">this</span>, tok::l_brace);</div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>   <span class="keywordflow">if</span> (Braces.consumeOpen()) {</div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>     <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_expected_lbrace);</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>   }</div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> </div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>   <span class="keywordflow">switch</span> (Result.Behavior) {</div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>   <span class="keywordflow">case</span> IEB_Parse:</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>     <span class="comment">// Parse declarations below.</span></div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>       </div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>   <span class="keywordflow">case</span> IEB_Dependent:</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>     llvm_unreachable(<span class="stringliteral">"Cannot have a dependent external declaration"</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="keywordflow">case</span> IEB_Skip:</div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>     Braces.skipToEnd();</div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>   }</div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span> </div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>   <span class="comment">// Parse the declarations.</span></div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>   <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_brace) && 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="l01932"></a><span class="lineno"> 1932</span>     ParsedAttributesWithRange attrs(AttrFactory);</div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>     MaybeParseCXX11Attributes(attrs);</div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>     MaybeParseMicrosoftAttributes(attrs);</div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>     <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a> Result = ParseExternalDeclaration(attrs);</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>     <span class="keywordflow">if</span> (Result && !<a class="code" href="classclang_1_1Parser.html#a1b5ad7abd6599942dc36a0abf8cd0fb3">getCurScope</a>()->getParent())</div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>       Actions.<a class="code" href="classclang_1_1Sema.html#a60ef1086c6a9880793ece95705b20699">getASTConsumer</a>().<a class="code" href="classclang_1_1ASTConsumer.html#a856744773798bd97057ccbc2768b21ad">HandleTopLevelDecl</a>(Result.get());</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>   }     </div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>   Braces.consumeClose();</div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> }</div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> </div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> <a class="code" href="classclang_1_1OpaquePtr.html" title="Wrapper for void* pointer.">Parser::DeclGroupPtrTy</a> Parser::ParseModuleImport(<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> AtLoc) {</div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#a5761d2afabf61a167722a8d2ac7a9f51" title="Return true if we have an ObjC keyword identifier.">isObjCAtKeyword</a>(tok::objc_import) && </div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>          <span class="stringliteral">"Improper start to module import"</span>);</div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ImportLoc = <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>   </div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::pair<IdentifierInfo *, SourceLocation></a>, 2> Path;</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>   </div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>   <span class="comment">// Parse the module path.</span></div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>   <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>     <span class="keywordflow">if</span> (!Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::identifier)) {</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</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="l01953"></a><span class="lineno"> 1953</span>         Actions.<a class="code" href="classclang_1_1Sema.html#ac36535aa4ffdc87e8c81c21e4bc41938">CodeCompleteModuleImport</a>(ImportLoc, Path);</div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>         ConsumeCodeCompletionToken();</div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>         <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::semi);</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>         <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>       }</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>       </div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>       <a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(Tok, diag::err_module_expected_ident);</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>       <a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(tok::semi);</div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>     }</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>     </div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>     <span class="comment">// Record this part of the module path.</span></div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>     Path.push_back(std::make_pair(Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</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="l01966"></a><span class="lineno"> 1966</span>     <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>     </div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::period)) {</div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>       <a class="code" href="classclang_1_1Parser.html#a6d0070b6cec04f092e97eb7009a0dfb2">ConsumeToken</a>();</div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>     }</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>     </div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>   } <span class="keywordflow">while</span> (<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> </div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>   <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#ae1c1e103bc4604974fae1cfb5df84bc8">hadModuleLoaderFatalFailure</a>()) {</div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>     <span class="comment">// With a fatal failure in the module loader, we abort parsing.</span></div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>     cutOffParsing();</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>   }</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>   <a class="code" href="classclang_1_1ActionResult.html">DeclResult</a> Import = Actions.<a class="code" href="classclang_1_1Sema.html#a28d55d11209cc083b9117b964c0008cf" title="The parser has processed a module import declaration.">ActOnModuleImport</a>(AtLoc, ImportLoc, Path);</div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>   ExpectAndConsumeSemi(diag::err_module_expected_semi);</div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>   <span class="keywordflow">if</span> (Import.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>())</div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Parser.html#a7c862a2fdd5e50bb1878ec7b4b6ac635">DeclGroupPtrTy</a>();</div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>   </div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>   <span class="keywordflow">return</span> Actions.<a class="code" href="classclang_1_1Sema.html#af97d1afaafdd80de7db9e06cdaebbf52">ConvertDeclToDeclGroup</a>(Import.<a class="code" href="classclang_1_1ActionResult.html#a75d6bbdafaa638e85809e113629401ca">get</a>());</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="keywordtype">bool</span> BalancedDelimiterTracker::diagnoseOverflow() {</div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>   P.<a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(P.Tok, diag::err_bracket_depth_exceeded)</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>     << P.<a class="code" href="classclang_1_1Parser.html#a01a6e30bd84c4846bcb0dc9c0bd86023">getLangOpts</a>().BracketDepth;</div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>   P.<a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(P.Tok, diag::note_bracket_depth);</div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>   P.<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>);</div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;  </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> </div>
+<div class="line"><a name="l01998"></a><span class="lineno"><a class="code" href="classclang_1_1BalancedDelimiterTracker.html#ae8b8f4737d1bec9e46642604ffe120d3"> 1998</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1BalancedDelimiterTracker.html#ae8b8f4737d1bec9e46642604ffe120d3">BalancedDelimiterTracker::expectAndConsume</a>(<span class="keywordtype">unsigned</span> DiagID,</div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>                                             <span class="keyword">const</span> <span class="keywordtype">char</span> *Msg,</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</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> SkipToToc ) {</div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>   LOpen = P.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="l02002"></a><span class="lineno"> 2002</span>   <span class="keywordflow">if</span> (P.ExpectAndConsume(Kind, DiagID, Msg, SkipToToc))</div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>   </div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>   <span class="keywordflow">if</span> (getDepth() < MaxDepth)</div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>     <span class="keywordflow">return</span> <span class="keyword">false</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="keywordflow">return</span> diagnoseOverflow();</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> }</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="keywordtype">bool</span> BalancedDelimiterTracker::diagnoseMissingClose() {</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>   assert(!P.Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(Close) && <span class="stringliteral">"Should have consumed closing delimiter"</span>);</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>   </div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *LHSName = <span class="stringliteral">"unknown"</span>;</div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>   <a class="code" href="classunsigned.html">diag::kind</a> DID;</div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>   <span class="keywordflow">switch</span> (Close) {</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>   <span class="keywordflow">default</span>: llvm_unreachable(<span class="stringliteral">"Unexpected balanced token"</span>);</div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>   <span class="keywordflow">case</span> tok::r_paren : LHSName = <span class="stringliteral">"("</span>; DID = diag::err_expected_rparen; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>   <span class="keywordflow">case</span> tok::r_brace : LHSName = <span class="stringliteral">"{"</span>; DID = diag::err_expected_rbrace; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>   <span class="keywordflow">case</span> tok::r_square: LHSName = <span class="stringliteral">"["</span>; DID = diag::err_expected_rsquare; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>   }</div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>   P.<a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(P.Tok, DID);</div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>   P.<a class="code" href="classclang_1_1Parser.html#a17667802b65fe77c3199b8c7ce96d86c">Diag</a>(LOpen, diag::note_matching) << LHSName;</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>   <span class="comment">// If we're not already at some kind of closing bracket, skip to our closing</span></div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>   <span class="comment">// token.</span></div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>   <span class="keywordflow">if</span> (P.Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren) && P.Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_brace) &&</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>       P.Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_square) &&</div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>       P.<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(Close, FinalToken,</div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>                   <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdceabec820d0f0c6bfe0100d9f343adbd1c6">Parser::StopAtSemi</a> | <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea7eadfbdad0b0f32d010aa026f79f44d9" title="Stop skipping at specified token, but don't skip the token itself.">Parser::StopBeforeMatch</a>) &&</div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>       P.Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(Close))</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>     LClose = P.ConsumeAnyToken();</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> }</div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> </div>
+<div class="line"><a name="l02036"></a><span class="lineno"><a class="code" href="classclang_1_1BalancedDelimiterTracker.html#a5e3d154822af4c435d558496ffbc40dc"> 2036</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1BalancedDelimiterTracker.html#a5e3d154822af4c435d558496ffbc40dc">BalancedDelimiterTracker::skipToEnd</a>() {</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>   P.<a class="code" href="classclang_1_1Parser.html#a8ff77be4f8f67a884036ea2dc5e2d468">SkipUntil</a>(Close, <a class="code" href="classclang_1_1Parser.html#ad15719a223127a6626e0b1107c99fdcea7eadfbdad0b0f32d010aa026f79f44d9" title="Stop skipping at specified token, but don't skip the token itself.">Parser::StopBeforeMatch</a>);</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>   <a class="code" href="classclang_1_1BalancedDelimiterTracker.html#a0604b944b45dc21a6f5ba3d60aea21aa">consumeClose</a>();</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:50 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