[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/SemaExprCXX_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprCXX_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprCXX_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprCXX_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,649 @@
+<!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: SemaExprCXX.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c3cadfa2fbef89a3b8f57073e8a31f9.html">Sema</a></li><li class="navelem"><a class="el" href="dir_eb0099ce9b4bd055698282f76081f892.html">Release+Asserts</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">SemaExprCXX.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="SemaExprCXX_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> /home/tstellar/llvm/tools/clang/lib/Sema/Release+Asserts/SemaExprCXX.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> /home/tstellar/llvm/tools/clang/lib/Sema/Release+Asserts/SemaExprCXX.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> SemaExprCXX.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaInternal.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#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/Sema/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> /home/tstellar/llvm/include/llvm/Support/SMLoc.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaDiagnostic.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticSemaKinds.inc \
+ TypeLocBuilder.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CXXInheritance.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeOrdering.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/EvaluatedExprVisitor.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtVisitor.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtCXX.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtObjC.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtOpenMP.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/RecursiveASTVisitor.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclFriend.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclTemplate.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclOpenMP.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h \</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h \</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h \</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Initialization.h \</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Overload.h \</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaFixItUtils.h \</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/TemplateDeduction.h \</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Lookup.h \</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ParsedTemplate.h \</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Scope.h \</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaLambda.h \</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTLambda.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/Sema/../../include/clang/Sema/SemaInternal.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/Sema/../../include/clang/AST/ASTContext.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/Sema/../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTFwd.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/Sema/../../include/clang/AST/DeclNodes.inc:</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/Sema/../../include/clang/AST/StmtNodes.inc:</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/Sema/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Decl.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/Sema/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> /home/tstellar/llvm/include/llvm/Support/type_traits.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/DataTypes.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/None.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.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/AlignOf.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/Compiler.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/Config/llvm-config.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/Support/MathExtras.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/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.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/PointerIntPair.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/PointerLikeTypeTraits.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/PointerUnion.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/Sema/../../include/clang/AST/DeclBase.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/Sema/../../include/clang/AST/AttrIterator.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/Sema/../../include/clang/AST/DeclarationName.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/Sema/../../include/clang/Basic/IdentifierTable.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/Sema/../../include/clang/Basic/OperatorKinds.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/Sema/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.def:</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/SmallString.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/ADT/StringRef.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/include/llvm/ADT/StringMap.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/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</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/Sema/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Diagnostic.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/Sema/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/Sema/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/Sema/../../include/clang/Basic/DiagnosticOptions.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/Sema/../../include/clang/Basic/DiagnosticOptions.def:</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/Sema/../../include/clang/Basic/SourceLocation.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/DenseMap.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/DenseMapInfo.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/STLExtras.h:</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Specifiers.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/Support/PrettyStackTrace.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/Sema/../../include/clang/AST/ExternalASTSource.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/Sema/../../include/clang/AST/CharUnits.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/Sema/../../include/clang/AST/Redeclarable.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/Sema/../../include/clang/AST/Type.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/Sema/../../include/clang/AST/NestedNameSpecifier.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/FoldingSet.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/tools/clang/lib/Sema/../../include/clang/AST/TemplateName.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/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> /home/tstellar/llvm/include/llvm/ADT/Optional.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/ADT/Twine.h:</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.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/Sema/../../include/clang/AST/BuiltinTypes.def:</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/include/llvm/Support/raw_ostream.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/include/llvm/Support/FileSystem.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/include/llvm/ADT/OwningPtr.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/include/llvm/Support/TimeValue.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/include/llvm/Support/system_error.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/Sema/../../include/clang/AST/Stmt.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/Sema/../../include/clang/AST/DeclGroup.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/Sema/../../include/clang/AST/StmtIterator.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/Sema/../../include/clang/Basic/CapturedStmt.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/Sema/../../include/clang/AST/TemplateBase.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/Sema/../../include/clang/AST/TypeLoc.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/Sema/../../include/clang/AST/TypeLocNodes.def:</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/Sema/../../include/clang/AST/CanonicalType.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/Sema/../../include/clang/AST/CommentCommandTraits.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/Sema/../../include/clang/Basic/CommentOptions.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/Sema/../../include/clang/AST/CommentCommandList.inc:</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/Sema/../../include/clang/AST/PrettyPrinter.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/Sema/../../include/clang/Basic/LangOptions.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/Sema/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/VersionTuple.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/Triple.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/Sema/../../include/clang/Basic/Sanitizers.def:</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/Sema/../../include/clang/Basic/LangOptions.def:</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/Sema/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/RawCommentList.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/Sema/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/FileManager.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/Sema/../../include/clang/Basic/FileSystemOptions.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/include/llvm/ADT/DenseSet.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/include/llvm/Support/MemoryBuffer.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/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> /home/tstellar/llvm/include/llvm-c/Core.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/Sema/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.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/Sema/../../include/clang/Sema/Sema.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/Sema/../../include/clang/AST/Attr.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/Sema/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrList.inc:</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/include/llvm/ADT/StringSwitch.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/Sema/../../include/clang/AST/Attrs.inc:</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/Sema/../../include/clang/AST/Expr.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/Sema/../../include/clang/AST/ASTVector.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/Sema/../../include/clang/AST/DeclAccessPair.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/Sema/../../include/clang/AST/OperationKinds.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/Sema/../../include/clang/Basic/CharInfo.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/Sema/../../include/clang/Basic/TypeTraits.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/Sema/../../include/clang/Basic/Builtins.def:</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/Sema/../../include/clang/AST/ExprObjC.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/Sema/../../include/clang/AST/DeclObjC.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/Sema/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h:</div>
+<div class="line"><a name="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/Sema/../../include/clang/AST/MangleNumberingContext.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/Sema/../../include/clang/AST/NSAPI.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/Sema/../../include/clang/Basic/ExpressionTraits.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/Sema/../../include/clang/Basic/OpenMPKinds.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/Sema/../../include/clang/Basic/OpenMPKinds.def:</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/Sema/../../include/clang/Basic/TemplateKinds.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/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/Sema/../../include/clang/Basic/Module.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/include/llvm/ADT/SetVector.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/include/llvm/ADT/SmallSet.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/Sema/../../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/Sema/../../include/clang/Sema/DeclSpec.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/Sema/../../include/clang/Basic/Lambda.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/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h:</div>
+<div class="line"><a name="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/Sema/../../include/clang/Sema/AttributeList.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/Sema/../../include/clang/Sema/Ownership.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/Sema/../../include/clang/Sema/AttrParsedAttrList.inc:</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/Sema/../../include/clang/Sema/ExternalSemaSource.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/Sema/../../include/clang/Sema/TypoCorrection.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/Sema/../../include/clang/AST/DeclCXX.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/Sema/../../include/clang/AST/ASTUnresolvedSet.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/Sema/../../include/clang/AST/UnresolvedSet.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/Sema/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Weak.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/ADT/MapVector.h:</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/IdentifierResolver.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/Sema/../../include/clang/Sema/LocInfoType.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/Sema/../../include/clang/Sema/ObjCMethodList.h:</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ScopeInfo.h:</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h:</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h:</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.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/include/llvm/Support/SMLoc.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/Sema/../../include/clang/Sema/SemaDiagnostic.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/Sema/../../include/clang/Basic/DiagnosticSemaKinds.inc:</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> TypeLocBuilder.h:</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CXXInheritance.h:</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeOrdering.h:</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/EvaluatedExprVisitor.h:</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtVisitor.h:</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtCXX.h:</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtObjC.h:</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtOpenMP.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/RecursiveASTVisitor.h:</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclFriend.h:</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclTemplate.h:</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclOpenMP.h:</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> </div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TargetInfo.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TargetCXXABI.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TargetOptions.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h:</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.h:</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h:</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h:</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h:</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h:</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Initialization.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Overload.h:</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaFixItUtils.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/TemplateDeduction.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Lookup.h:</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ParsedTemplate.h:</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Scope.h:</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaLambda.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTLambda.h:</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:14:05 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/SemaExprMember_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprMember_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprMember_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprMember_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1864 @@
+<!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: SemaExprMember.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c3cadfa2fbef89a3b8f57073e8a31f9.html">Sema</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">SemaExprMember.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="SemaExprMember_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">//===--- SemaExprMember.cpp - Semantic Analysis for Expressions -----------===//</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 semantic analysis member access expressions.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="SemaInternal_8h.html">clang/Sema/SemaInternal.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="ASTLambda_8h.html" title="This file provides some common utility functions for processing Lambda related AST Constructs...">clang/AST/ASTLambda.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="DeclCXX_8h.html" title="Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).">clang/AST/DeclCXX.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</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="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="ExprCXX_8h.html" title="Defines the clang::Expr interface and subclasses for C++ expressions.">clang/AST/ExprCXX.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="ExprObjC_8h.html">clang/AST/ExprObjC.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="Lookup_8h.html">clang/Sema/Lookup.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 "<a class="code" href="ScopeInfo_8h.html">clang/Sema/ScopeInfo.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">using namespace </span>sema;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a80b723a5b1d40a10af1541b3e771f5c0"> 28</a></span> <span class="keyword">typedef</span> llvm::SmallPtrSet<const CXXRecordDecl*, 4> <a class="code" href="SemaExprMember_8cpp.html#a80b723a5b1d40a10af1541b3e771f5c0">BaseSet</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#aa385a2573edfaa3406c2071778e1d920"> 29</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="SemaExprMember_8cpp.html#aa385a2573edfaa3406c2071778e1d920">BaseIsNotInSet</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *<a class="code" href="classclang_1_1Base.html">Base</a>, <span class="keywordtype">void</span> *BasesPtr) {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">const</span> <a class="code" href="SemaExprMember_8cpp.html#a80b723a5b1d40a10af1541b3e771f5c0">BaseSet</a> &Bases = *<span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><a class="code" href="SemaExprMember_8cpp.html#a80b723a5b1d40a10af1541b3e771f5c0">BaseSet</a>*<span class="keyword">></span>(BasesPtr);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">return</span> !Bases.count(Base-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</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="comment"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">/// Determines if the given class is provably not derived from all of</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">/// the prospective base classes.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a55818cd81b03146861082fcd3a6ca6eb"> 36</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="SemaExprMember_8cpp.html#a55818cd81b03146861082fcd3a6ca6eb">isProvablyNotDerivedFrom</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>, <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Record,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">const</span> <a class="code" href="SemaExprMember_8cpp.html#a80b723a5b1d40a10af1541b3e771f5c0">BaseSet</a> &Bases) {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keywordtype">void</span> *BasesPtr = <span class="keyword">const_cast<</span><span class="keywordtype">void</span>*<span class="keyword">></span>(<span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><span class="keywordtype">void</span>*<span class="keyword">></span>(&Bases));</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">return</span> <a class="code" href="SemaExprMember_8cpp.html#aa385a2573edfaa3406c2071778e1d920">BaseIsNotInSet</a>(Record, BasesPtr) &&</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> Record-><a class="code" href="classclang_1_1CXXRecordDecl.html#acd5fb7de4853357c1fd9a9450f44ce60" title="Determines if the given callback holds for all the direct or indirect base classes of this type...">forallBases</a>(<a class="code" href="SemaExprMember_8cpp.html#aa385a2573edfaa3406c2071778e1d920">BaseIsNotInSet</a>, BasesPtr);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> }</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275"> 43</a></span> <span class="keyword">enum</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275">IMAKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> /// The reference is definitely not an instance member access.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afdade32c254d8703799bbd5a502e701d"> 45</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afdade32c254d8703799bbd5a502e701d" title="The reference is definitely not an instance member access.">IMA_Static</a>,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"></span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> /// The reference may be an implicit instance member access.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a14fd51cd671639e35a46ffcc17c106b9"> 48</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a14fd51cd671639e35a46ffcc17c106b9" title="The reference may be an implicit instance member access.">IMA_Mixed</a>,</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"> /// The reference may be to an instance member, but it might be invalid if</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> /// so, because the context is not an instance method.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a51ff90cf1c0e9febfe7dd4b3489ca66f"> 52</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a51ff90cf1c0e9febfe7dd4b3489ca66f">IMA_Mixed_StaticContext</a>,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> /// The reference may be to an instance member, but it is invalid if</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> /// so, because the context is from an unrelated class.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a093bfc7beca54ff0d9067bd14398f4a5"> 56</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a093bfc7beca54ff0d9067bd14398f4a5">IMA_Mixed_Unrelated</a>,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> /// The reference is definitely an implicit instance member access.</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275ab9666b0abdd58304a208a3dec1404150"> 59</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275ab9666b0abdd58304a208a3dec1404150" title="The reference is definitely an implicit instance member access.">IMA_Instance</a>,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> /// The reference may be to an unresolved using declaration.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a4821c20e10eea6746b27da7eebebfc7e"> 62</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a4821c20e10eea6746b27da7eebebfc7e" title="The reference may be to an unresolved using declaration.">IMA_Unresolved</a>,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> /// The reference is a contextually-permitted abstract member reference.</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a59067e7e469eb4ae66d20a88999f536f"> 65</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a59067e7e469eb4ae66d20a88999f536f" title="The reference is a contextually-permitted abstract member reference.">IMA_Abstract</a>,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"></span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> /// The reference may be to an unresolved using declaration and the</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> /// context is not an instance method.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a2e2713258d79f8b250f893af96a547ce"> 69</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a2e2713258d79f8b250f893af96a547ce">IMA_Unresolved_StaticContext</a>,</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// The reference refers to a field which is not a member of the containing</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// class, which is allowed because we're in C++11 mode and the context is</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment">// unevaluated.</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afb2502298f724253f166400a41c4bbdc"> 74</a></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afb2502298f724253f166400a41c4bbdc">IMA_Field_Uneval_Context</a>,</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"></span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> /// All possible referrents are instance members and the current</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> /// context is not an instance method.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a4f80956da69f2357b2b1fa2d2bb1f1ac"> 78</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a4f80956da69f2357b2b1fa2d2bb1f1ac">IMA_Error_StaticContext</a>,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"></span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"> /// All possible referrents are instance members of an unrelated</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"> /// class.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a25980d510d137f363909bb0d53e63776"> 82</a></span> <span class="comment"></span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a25980d510d137f363909bb0d53e63776">IMA_Error_Unrelated</a></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> };</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"></span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">/// The given lookup names class member(s) and is not being used for</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">/// an address-of-member expression. Classify the type of access</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">/// according to whether it's possible that this reference names an</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">/// instance member. This is best-effort in dependent contexts; it is okay to</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">/// conservatively answer "yes", in which case some errors will simply</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">/// not be caught until template-instantiation.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a358f2d50728cb74a24abe4a21f153d70"> 91</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275">IMAKind</a> <a class="code" href="SemaExprMember_8cpp.html#a358f2d50728cb74a24abe4a21f153d70">ClassifyImplicitMemberAccess</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <a class="code" href="classclang_1_1Scope.html">Scope</a> *CurScope,</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> assert(!R.<a class="code" href="classclang_1_1LookupResult.html#a9f44c1cd9d9c7e84dd0202538dd72cd7" title="Return true if no decls were found.">empty</a>() && (*R.<a class="code" href="classclang_1_1LookupResult.html#a460debe22c59694c326b3c4671726889">begin</a>())->isCXXClassMember());</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = SemaRef.<a class="code" href="classclang_1_1Sema.html#a5546b66bc07d9bdaea4a5f47734ba1d9">getFunctionLevelDeclContext</a>();</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">bool</span> isStaticContext = SemaRef.<a class="code" href="classclang_1_1Sema.html#a9f15684dd78ee243699371b7a1f120ca" title="When non-NULL, the C++ 'this' expression is allowed despite the current context not being a non-stati...">CXXThisTypeOverride</a>.<a class="code" href="classclang_1_1QualType.html#a8f87f58000490ad01cd09add1f27d7ac" title="isNull - Return true if this QualType doesn't point to a type yet.">isNull</a>() &&</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> (!isa<CXXMethodDecl>(DC) || cast<CXXMethodDecl>(DC)->isStatic());</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">if</span> (R.<a class="code" href="classclang_1_1LookupResult.html#a6326b8d5d3a53f7a8b867c0551ada679">isUnresolvableResult</a>())</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> isStaticContext ? <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a2e2713258d79f8b250f893af96a547ce">IMA_Unresolved_StaticContext</a> : <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a4821c20e10eea6746b27da7eebebfc7e" title="The reference may be to an unresolved using declaration.">IMA_Unresolved</a>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// Collect all the declaring classes of instance members we find.</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">bool</span> hasNonInstance = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keywordtype">bool</span> isField = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <a class="code" href="SemaExprMember_8cpp.html#a80b723a5b1d40a10af1541b3e771f5c0">BaseSet</a> Classes;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1UnresolvedSetIterator.html">LookupResult::iterator</a> I = R.<a class="code" href="classclang_1_1LookupResult.html#a460debe22c59694c326b3c4671726889">begin</a>(), E = R.<a class="code" href="classclang_1_1LookupResult.html#ae1db847b7820acee0a0371510ccdf1c9">end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *D = *I;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1NamedDecl.html#a614520a704fb5219e51ec678fa66103d" title="Determine whether the given declaration is an instance member of a C++ class.">isCXXInstanceMember</a>()) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">if</span> (dyn_cast<FieldDecl>(D) || dyn_cast<<a class="code" href="classclang_1_1MSPropertyDecl.html">MSPropertyDecl</a>>(D)</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> || dyn_cast<IndirectFieldDecl>(D))</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> isField = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *R = cast<CXXRecordDecl>(D-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>());</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> Classes.insert(R-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> hasNonInstance = <span class="keyword">true</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> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// If we didn't find any instance members, it can't be an implicit</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// member reference.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span> (Classes.empty())</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afdade32c254d8703799bbd5a502e701d" title="The reference is definitely not an instance member access.">IMA_Static</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// C++11 [expr.prim.general]p12:</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// An id-expression that denotes a non-static data member or non-static</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// member function of a class can only be used:</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// (...)</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// - if that id-expression denotes a non-static data member and it</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// appears in an unevaluated operand.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// This rule is specific to C++11. However, we also permit this form</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// in unevaluated inline assembly operands, like the operand to a SIZE.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275">IMAKind</a> AbstractInstanceResult = <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afdade32c254d8703799bbd5a502e701d" title="The reference is definitely not an instance member access.">IMA_Static</a>; <span class="comment">// happens to be 'false'</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> assert(!AbstractInstanceResult);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">switch</span> (SemaRef.<a class="code" href="classclang_1_1Sema.html#acadb2dedd135bfa6edc61bf51d8dae1d" title="A stack of expression evaluation contexts.">ExprEvalContexts</a>.back().Context) {</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#ac105cb9d8d4ad3e532351c498f6082b5ae4e2b142c5314222a59195d1612a1904" title="The current expression and its subexpressions occur within an unevaluated operand (C++11 [expr]p7)...">Sema::Unevaluated</a>:</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">if</span> (isField && SemaRef.<a class="code" href="classclang_1_1Sema.html#a5f632d714a520550786bde65d3771228">getLangOpts</a>().CPlusPlus11)</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> AbstractInstanceResult = <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afb2502298f724253f166400a41c4bbdc">IMA_Field_Uneval_Context</a>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#ac105cb9d8d4ad3e532351c498f6082b5acd1e66e4527e0788da5ec8d8e85c2c8f" title="The current expression occurs within an unevaluated operand that unconditionally permits abstract ref...">Sema::UnevaluatedAbstract</a>:</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> AbstractInstanceResult = <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a59067e7e469eb4ae66d20a88999f536f" title="The reference is a contextually-permitted abstract member reference.">IMA_Abstract</a>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#ac105cb9d8d4ad3e532351c498f6082b5a1c462d0aa3eb9afe577f944b62b22c94" title="The current context is "potentially evaluated" in C++11 terms, but the expression is evaluated at com...">Sema::ConstantEvaluated</a>:</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#ac105cb9d8d4ad3e532351c498f6082b5a95024daaf0c7fed326d8d8c6a36714ab" title="The current expression is potentially evaluated at run time, which means that code may be generated t...">Sema::PotentiallyEvaluated</a>:</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Sema.html#ac105cb9d8d4ad3e532351c498f6082b5aede34185e1eec969397a642e464daaea" title="The current expression is potentially evaluated, but any declarations referenced inside that expressi...">Sema::PotentiallyEvaluatedIfUsed</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> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// If the current context is not an instance method, it can't be</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// an implicit member reference.</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">if</span> (isStaticContext) {</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">if</span> (hasNonInstance)</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a51ff90cf1c0e9febfe7dd4b3489ca66f">IMA_Mixed_StaticContext</a>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> AbstractInstanceResult ? AbstractInstanceResult</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> : <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a4f80956da69f2357b2b1fa2d2bb1f1ac">IMA_Error_StaticContext</a>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> }</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *contextClass;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD = dyn_cast<CXXMethodDecl>(DC))</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> contextClass = MD-><a class="code" href="classclang_1_1DeclContext.html#a31c99b38017e8d702fda9c0f1d021186" title="getParent - Returns the containing DeclContext.">getParent</a>()->getCanonicalDecl();</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> contextClass = cast<CXXRecordDecl>(DC);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// [class.mfct.non-static]p3: </span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// ...is used in the body of a non-static member function of class X,</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment">// if name lookup (3.4.1) resolves the name in the id-expression to a</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// non-static non-type member of some class C [...]</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// ...if C is not X or a base class of X, the class member access expression</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// is ill-formed.</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">if</span> (R.<a class="code" href="classclang_1_1LookupResult.html#ab51162686ebbe4bc11ec76ebf4d56129" title="Returns the 'naming class' for this lookup, i.e. the class which was looked into to find these result...">getNamingClass</a>() &&</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> contextClass-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>() !=</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> R.<a class="code" href="classclang_1_1LookupResult.html#ab51162686ebbe4bc11ec76ebf4d56129" title="Returns the 'naming class' for this lookup, i.e. the class which was looked into to find these result...">getNamingClass</a>()-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>()) {</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// If the naming class is not the current context, this was a qualified</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// member name lookup, and it's sufficient to check that we have the naming</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// class as a base class.</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> Classes.clear();</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> Classes.insert(R.<a class="code" href="classclang_1_1LookupResult.html#ab51162686ebbe4bc11ec76ebf4d56129" title="Returns the 'naming class' for this lookup, i.e. the class which was looked into to find these result...">getNamingClass</a>()-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> }</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// If we can prove that the current context is unrelated to all the</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// declaring classes, it can't be an implicit member reference (in</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// which case it's an error if any of those members are selected).</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">if</span> (<a class="code" href="SemaExprMember_8cpp.html#a55818cd81b03146861082fcd3a6ca6eb">isProvablyNotDerivedFrom</a>(SemaRef, contextClass, Classes))</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">return</span> hasNonInstance ? <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a093bfc7beca54ff0d9067bd14398f4a5">IMA_Mixed_Unrelated</a> :</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> AbstractInstanceResult ? AbstractInstanceResult :</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a25980d510d137f363909bb0d53e63776">IMA_Error_Unrelated</a>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">return</span> (hasNonInstance ? <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a14fd51cd671639e35a46ffcc17c106b9" title="The reference may be an implicit instance member access.">IMA_Mixed</a> : <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275ab9666b0abdd58304a208a3dec1404150" title="The reference is definitely an implicit instance member access.">IMA_Instance</a>);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> }</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment"></span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">/// Diagnose a reference to a field with no object available.</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a5832294f531f72b5ca5f5ad290a7b00c"> 199</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="SemaExprMember_8cpp.html#a5832294f531f72b5ca5f5ad290a7b00c" title="Diagnose a reference to a field with no object available.">diagnoseInstanceReference</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>,</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">const</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="l00201"></a><span class="lineno"> 201</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *Rep,</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &nameInfo) {</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</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 = nameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a47f8f8d3dab3d4ae666ac99f15b58b02" title="getLoc - Returns the main location of the declaration name.">getLoc</a>();</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range(Loc);</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>()) Range.<a class="code" href="classclang_1_1SourceRange.html#a11fd265391224233491b6a0d351b8acd">setBegin</a>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>());</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> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *FunctionLevelDC = SemaRef.<a class="code" href="classclang_1_1Sema.html#a5546b66bc07d9bdaea4a5f47734ba1d9">getFunctionLevelDeclContext</a>();</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *Method = dyn_cast<<a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a>>(FunctionLevelDC);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *ContextClass = Method ? Method-><a class="code" href="classclang_1_1CXXMethodDecl.html#a89937377c3cbaa960c0d35a2b0100071">getParent</a>() : 0;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RepClass = dyn_cast<<a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a>>(Rep-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>());</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> <span class="keywordtype">bool</span> InStaticMethod = Method && Method-><a class="code" href="classclang_1_1CXXMethodDecl.html#acd2543d24d5f7ef0aecc1aff36eeab4a">isStatic</a>();</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keywordtype">bool</span> IsField = isa<FieldDecl>(Rep) || isa<IndirectFieldDecl>(Rep);</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">if</span> (IsField && InStaticMethod)</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment">// "invalid use of member 'x' in static member function"</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Loc, diag::err_invalid_member_use_in_static_method)</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> << Range << nameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a4a662304441c06d60ec1764e515337c4" title="getName - Returns the embedded declaration name.">getName</a>();</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ContextClass && RepClass && SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae92a40568ee6a10431af2437af862b07" title="No scope specifier.">isEmpty</a>() && !InStaticMethod &&</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> !RepClass-><a class="code" href="classclang_1_1DeclContext.html#ab26c189165e15c46df7e4c734da0b0b8" title="Determine whether this declaration context is equivalent to the declaration context DC...">Equals</a>(ContextClass) && RepClass-><a class="code" href="classclang_1_1DeclContext.html#ac573b7eaf4f3177d1378df80e557160d" title="Determine whether this declaration context encloses the declaration context DC.">Encloses</a>(ContextClass))</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment">// Unqualified lookup in a non-static member function found a member of an</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment">// enclosing class.</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Loc, diag::err_nested_non_static_member_use)</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> << IsField << RepClass << nameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a4a662304441c06d60ec1764e515337c4" title="getName - Returns the embedded declaration name.">getName</a>() << ContextClass << Range;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IsField)</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Loc, diag::err_invalid_non_static_member_use)</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> << nameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a4a662304441c06d60ec1764e515337c4" title="getName - Returns the embedded declaration name.">getName</a>() << Range;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Loc, diag::err_member_call_without_object)</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> << Range;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> }</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment"></span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">/// Builds an expression which might be an implicit member expression.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment"></span><a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#a51a794f7f2a96eb7bec65bdffdca6a51"> 235</a></span> <a class="code" href="classclang_1_1Sema.html#a51a794f7f2a96eb7bec65bdffdca6a51" title="Builds an expression which might be an implicit member expression.">Sema::BuildPossibleImplicitMemberExpr</a>(<span class="keyword">const</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="l00236"></a><span class="lineno"> 236</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,</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R,</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> *TemplateArgs) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keywordflow">switch</span> (<a class="code" href="SemaExprMember_8cpp.html#a358f2d50728cb74a24abe4a21f153d70">ClassifyImplicitMemberAccess</a>(*<span class="keyword">this</span>, CurScope, R)) {</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275ab9666b0abdd58304a208a3dec1404150" title="The reference is definitely an implicit instance member access.">IMA_Instance</a>:</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">return</span> BuildImplicitMemberExpr(SS, TemplateKWLoc, R, TemplateArgs, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a14fd51cd671639e35a46ffcc17c106b9" title="The reference may be an implicit instance member access.">IMA_Mixed</a>:</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a093bfc7beca54ff0d9067bd14398f4a5">IMA_Mixed_Unrelated</a>:</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a4821c20e10eea6746b27da7eebebfc7e" title="The reference may be to an unresolved using declaration.">IMA_Unresolved</a>:</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">return</span> BuildImplicitMemberExpr(SS, TemplateKWLoc, R, TemplateArgs, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afb2502298f724253f166400a41c4bbdc">IMA_Field_Uneval_Context</a>:</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>(), diag::warn_cxx98_compat_non_static_member_use)</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> << R.<a class="code" href="classclang_1_1LookupResult.html#a3c8df5e842b84094a77239c37c6231ae" title="Gets the name info to look up.">getLookupNameInfo</a>().<a class="code" href="structclang_1_1DeclarationNameInfo.html#a4a662304441c06d60ec1764e515337c4" title="getName - Returns the embedded declaration name.">getName</a>();</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment">// Fall through.</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275afdade32c254d8703799bbd5a502e701d" title="The reference is definitely not an instance member access.">IMA_Static</a>:</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a59067e7e469eb4ae66d20a88999f536f" title="The reference is a contextually-permitted abstract member reference.">IMA_Abstract</a>:</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a51ff90cf1c0e9febfe7dd4b3489ca66f">IMA_Mixed_StaticContext</a>:</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a2e2713258d79f8b250f893af96a547ce">IMA_Unresolved_StaticContext</a>:</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">if</span> (TemplateArgs || TemplateKWLoc.<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="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">return</span> BuildTemplateIdExpr(SS, TemplateKWLoc, R, <span class="keyword">false</span>, TemplateArgs);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">return</span> BuildDeclarationNameExpr(SS, R, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a4f80956da69f2357b2b1fa2d2bb1f1ac">IMA_Error_StaticContext</a>:</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">case</span> <a class="code" href="SemaExprMember_8cpp.html#a3367a81248c11fdefa287939b714a275a25980d510d137f363909bb0d53e63776">IMA_Error_Unrelated</a>:</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <a class="code" href="SemaExprMember_8cpp.html#a5832294f531f72b5ca5f5ad290a7b00c" title="Diagnose a reference to a field with no object available.">diagnoseInstanceReference</a>(*<span class="keyword">this</span>, SS, R.<a class="code" href="classclang_1_1LookupResult.html#a67d43ac1334ede6ef1fd8fa13d885c74" title="Fetches a representative decl. Useful for lazy diagnostics.">getRepresentativeDecl</a>(),</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> R.<a class="code" href="classclang_1_1LookupResult.html#a3c8df5e842b84094a77239c37c6231ae" title="Gets the name info to look up.">getLookupNameInfo</a>());</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> }</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> llvm_unreachable(<span class="stringliteral">"unexpected instance member access kind"</span>);</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> }</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment"></span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment">/// Check an ext-vector component access expression.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment">/// VK should be set in advance to the value kind of the base</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment">/// expression.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classclang_1_1QualType.html">QualType</a></div>
+<div class="line"><a name="l00275"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a6f244fc31207d9571bb34181894efa74"> 275</a></span> <a class="code" href="SemaExprMember_8cpp.html#a6f244fc31207d9571bb34181894efa74">CheckExtVectorComponent</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <a class="code" href="classclang_1_1QualType.html">QualType</a> baseType, <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340" title="The categorization of expression values, currently following the C++11 scheme.">ExprValueKind</a> &VK,</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> OpLoc, <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *CompName,</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</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> CompLoc) {</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment">// FIXME: Share logic with ExtVectorElementExpr::containsDuplicateElements,</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">// see FIXME there.</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">// FIXME: This logic can be greatly simplified by splitting it along</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// halving/not halving and reworking the component checking.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ExtVectorType.html">ExtVectorType</a> *vecType = baseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ExtVectorType.html">ExtVectorType</a>>();</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">// The vector accessor can't exceed the number of elements.</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *compStr = CompName-><a class="code" href="classclang_1_1IdentifierInfo.html#ae69779507a5e059eecf91dcfcee5d958" title="Return the beginning of the actual null-terminated string for this identifier.">getNameStart</a>();</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="comment">// This flag determines whether or not the component is one of the four</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment">// special names that indicate a subset of exactly half the elements are</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment">// to be selected.</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="keywordtype">bool</span> HalvingSwizzle = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment">// This flag determines whether or not CompName has an 's' char prefix,</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment">// indicating that it is a string of hex values to be used as vector indices.</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keywordtype">bool</span> HexSwizzle = *compStr == <span class="charliteral">'s'</span> || *compStr == <span class="charliteral">'S'</span>;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keywordtype">bool</span> HasRepeated = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keywordtype">bool</span> HasIndex[16] = {};</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keywordtype">int</span> Idx;</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="comment">// Check that we've found one of the special components, or that the component</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="comment">// names must come from the same set.</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">if</span> (!strcmp(compStr, <span class="stringliteral">"hi"</span>) || !strcmp(compStr, <span class="stringliteral">"lo"</span>) ||</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> !strcmp(compStr, <span class="stringliteral">"even"</span>) || !strcmp(compStr, <span class="stringliteral">"odd"</span>)) {</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> HalvingSwizzle = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!HexSwizzle &&</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> (Idx = vecType-><a class="code" href="classclang_1_1ExtVectorType.html#aa50a9a6c1b3f203dd246708edcdc64ed">getPointAccessorIdx</a>(*compStr)) != -1) {</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">if</span> (HasIndex[Idx]) HasRepeated = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> HasIndex[Idx] = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> compStr++;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> } <span class="keywordflow">while</span> (*compStr && (Idx = vecType-><a class="code" href="classclang_1_1ExtVectorType.html#aa50a9a6c1b3f203dd246708edcdc64ed">getPointAccessorIdx</a>(*compStr)) != -1);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="keywordflow">if</span> (HexSwizzle) compStr++;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keywordflow">while</span> ((Idx = vecType-><a class="code" href="classclang_1_1ExtVectorType.html#a9020d7f27393e19d08504297d2d1cd07">getNumericAccessorIdx</a>(*compStr)) != -1) {</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">if</span> (HasIndex[Idx]) HasRepeated = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> HasIndex[Idx] = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> compStr++;</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> }</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> (!HalvingSwizzle && *compStr) {</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment">// We didn't get to the end of the string. This means the component names</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment">// didn't come from the same set *or* we encountered an illegal name.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(OpLoc, diag::err_ext_vector_component_name_illegal)</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> << StringRef(compStr, 1) << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(CompLoc);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1QualType.html">QualType</a>();</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> </div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment">// Ensure no component accessor exceeds the width of the vector type it</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment">// operates on.</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keywordflow">if</span> (!HalvingSwizzle) {</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> compStr = CompName-><a class="code" href="classclang_1_1IdentifierInfo.html#ae69779507a5e059eecf91dcfcee5d958" title="Return the beginning of the actual null-terminated string for this identifier.">getNameStart</a>();</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keywordflow">if</span> (HexSwizzle)</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> compStr++;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="keywordflow">while</span> (*compStr) {</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keywordflow">if</span> (!vecType-><a class="code" href="classclang_1_1ExtVectorType.html#a1f88ac98a9e2aac37a1ae53f8eb3fc53">isAccessorWithinNumElements</a>(*compStr++)) {</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(OpLoc, diag::err_ext_vector_component_exceeds_length)</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> << baseType << <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(CompLoc);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1QualType.html">QualType</a>();</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> }</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> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// The component accessor looks fine - now we need to compute the actual type.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment">// The vector type is implied by the component accessor. For example,</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="comment">// vec4.b is a float, vec4.xy is a vec2, vec4.rgb is a vec3, etc.</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="comment">// vec4.s0 is a float, vec4.s23 is a vec3, etc.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// vec4.hi, vec4.lo, vec4.e, and vec4.o all return vec2.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keywordtype">unsigned</span> CompSize = HalvingSwizzle ? (vecType-><a class="code" href="classclang_1_1VectorType.html#adfa7e090380e24449722cc934b2a71b1">getNumElements</a>() + 1) / 2</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> : CompName-><a class="code" href="classclang_1_1IdentifierInfo.html#a72b08bd4bebd4f8f6c6aeaaa3769fcd2" title="Efficiently return the length of this identifier info.">getLength</a>();</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keywordflow">if</span> (HexSwizzle)</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> CompSize--;</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="keywordflow">if</span> (CompSize == 1)</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keywordflow">return</span> vecType-><a class="code" href="classclang_1_1VectorType.html#aa82693de604f63a6366f39372252ab42">getElementType</a>();</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keywordflow">if</span> (HasRepeated) VK = <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a7486248bcb086a1f969a9e138208dcd7" title="An r-value expression (a pr-value in the C++11 taxonomy) produces a temporary value.">VK_RValue</a>;</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> <a class="code" href="classclang_1_1QualType.html">QualType</a> VT = S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a083cfef8b192871196e505a9295a77ad" title="Return the unique reference to an extended vector type of the specified element type and size...">getExtVectorType</a>(vecType-><a class="code" href="classclang_1_1VectorType.html#aa82693de604f63a6366f39372252ab42">getElementType</a>(), CompSize);</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="comment">// Now look up the TypeDefDecl from the vector type. Without this,</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="comment">// diagostics look bad. We want extended vector types to appear built-in.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1LazyVector.html#a67171474c4da6cc8efe0c7fafefd2b2d">Sema::ExtVectorDeclsType::iterator</a> </div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> I = S.<a class="code" href="classclang_1_1Sema.html#a2c86bcade973975c740a783b831362d9">ExtVectorDecls</a>.<a class="code" href="classclang_1_1LazyVector.html#aece837b4cb6ebe8f1e2d25c502a60a7e">begin</a>(S.<a class="code" href="classclang_1_1Sema.html#a1b4820fc2e542e2a8ac45958c0edbdc8">getExternalSource</a>()),</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> E = S.<a class="code" href="classclang_1_1Sema.html#a2c86bcade973975c740a783b831362d9">ExtVectorDecls</a>.<a class="code" href="classclang_1_1LazyVector.html#a9ec68a985ebe7f74314f824bfe5bb07b">end</a>(); </div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> I != E; ++I) {</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keywordflow">if</span> ((*I)->getUnderlyingType() == VT)</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keywordflow">return</span> S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a3b01e9bb794ab9bc18a7578bc18a0611" title="Return the unique reference to the type for the specified typedef-name decl.">getTypedefType</a>(*I);</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> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keywordflow">return</span> VT; <span class="comment">// should never get here (a typedef type should always be found).</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> }</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a4584cb2a8e838551220ab4ff596e63b1"> 377</a></span> <span class="keyword">static</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="SemaExprMember_8cpp.html#a4584cb2a8e838551220ab4ff596e63b1">FindGetterSetterNameDeclFromProtocolList</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a>*PDecl,</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Member,</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> &Sel,</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) {</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keywordflow">if</span> (Member)</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *PD = PDecl-><a class="code" href="classclang_1_1ObjCContainerDecl.html#af9e27df54a37f3414e0896d56a8c0b1f">FindPropertyDeclaration</a>(Member))</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keywordflow">return</span> PD;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD = PDecl-><a class="code" href="classclang_1_1ObjCContainerDecl.html#ad21a2708e21290c6e337bd26ce364ca5">getInstanceMethod</a>(Sel))</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">return</span> OMD;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCProtocolDecl.html#adbd4b44a478f573a24072123f93b2fe9">ObjCProtocolDecl::protocol_iterator</a> I = PDecl-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a199069b3da6c86cd72a6b8fe9f8feec0">protocol_begin</a>(),</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> E = PDecl-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a681da3dbfa474479f44d59eee31d0e1e">protocol_end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Decl.html">Decl</a> *D = <a class="code" href="SemaExprMember_8cpp.html#a4584cb2a8e838551220ab4ff596e63b1">FindGetterSetterNameDeclFromProtocolList</a>(*I, Member, Sel,</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> Context))</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keywordflow">return</span> D;</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> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> }</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#ae58304bf1184fda4a21d9cdf42767f8b"> 396</a></span> <span class="keyword">static</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="SemaExprMember_8cpp.html#ae58304bf1184fda4a21d9cdf42767f8b">FindGetterSetterNameDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *QIdTy,</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Member,</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> &Sel,</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) {</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="comment">// Check protocols on qualified interfaces.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *GDecl = 0;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCObjectPointerType.html#afeb75de5b6636a136ce0cd53983f20d0">ObjCObjectPointerType::qual_iterator</a> I = QIdTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#a992814f43723b09bf92d515e9b879704">qual_begin</a>(),</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> E = QIdTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#aa5f897ef948db07e84c1a18bf7e159b8">qual_end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keywordflow">if</span> (Member)</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *PD = (*I)->FindPropertyDeclaration(Member)) {</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> GDecl = PD;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> }</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// Also must look for a getter or setter name which uses property syntax.</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD = (*I)->getInstanceMethod(Sel)) {</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> GDecl = OMD;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> }</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> }</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keywordflow">if</span> (!GDecl) {</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCObjectPointerType.html#afeb75de5b6636a136ce0cd53983f20d0">ObjCObjectPointerType::qual_iterator</a> I = QIdTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#a992814f43723b09bf92d515e9b879704">qual_begin</a>(),</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> E = QIdTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#aa5f897ef948db07e84c1a18bf7e159b8">qual_end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="comment">// Search in the protocol-qualifier list of current protocol.</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> GDecl = <a class="code" href="SemaExprMember_8cpp.html#a4584cb2a8e838551220ab4ff596e63b1">FindGetterSetterNameDeclFromProtocolList</a>(*I, Member, Sel, </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> Context);</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="keywordflow">if</span> (GDecl)</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keywordflow">return</span> GDecl;</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="keywordflow">return</span> GDecl;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> }</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l00429"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#aa550bb53302a2907da4697324ed50207"> 429</a></span> <a class="code" href="classclang_1_1Sema.html#aa550bb53302a2907da4697324ed50207">Sema::ActOnDependentMemberExpr</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *BaseExpr, <a class="code" href="classclang_1_1QualType.html">QualType</a> BaseType,</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keywordtype">bool</span> IsArrow, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> OpLoc,</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">const</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="l00432"></a><span class="lineno"> 432</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,</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FirstQualifierInScope,</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &NameInfo,</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> *TemplateArgs) {</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="comment">// Even in dependent contexts, try to diagnose base expressions with</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment">// obviously wrong types, e.g.:</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="comment">// T* t;</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="comment">// t.f;</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="comment">// In Obj-C++, however, the above expression is valid, since it could be</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="comment">// accessing the 'f' property if T is an Obj-C interface. The extra check</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment">// allows this, while still reporting an error if T is a struct pointer.</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keywordflow">if</span> (!IsArrow) {</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *PT = BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>();</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="keywordflow">if</span> (PT && (!getLangOpts().ObjC1 ||</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> PT-><a class="code" href="classclang_1_1PointerType.html#a3d0af079431148f7da7e2c400052cc66">getPointeeType</a>()-><a class="code" href="classclang_1_1Type.html#a6525adb10d549a7ee372424dcdb6b9bd">isRecordType</a>())) {</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> assert(BaseExpr && <span class="stringliteral">"cannot happen with implicit member accesses"</span>);</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(OpLoc, diag::err_typecheck_member_reference_struct_union)</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> << BaseType << BaseExpr-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>() << NameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#aac2e34fac4c9a3d437d475acd703ab9a" title="getSourceRange - The range of the declaration name.">getSourceRange</a>();</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> }</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> }</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> assert(BaseType-><a class="code" href="classclang_1_1Type.html#a7e475b7859ae970eb837da95e94ab26c">isDependentType</a>() ||</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> NameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a4a662304441c06d60ec1764e515337c4" title="getName - Returns the embedded declaration name.">getName</a>().<a class="code" href="classclang_1_1DeclarationName.html#af67a8f446f13b46fb722e936681a77eb" title="Determines whether the name itself is dependent, e.g., because it involves a C++ type that is itself ...">isDependentName</a>() ||</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> isDependentScopeSpecifier(SS));</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment">// Get the type being accessed in BaseType. If this is an arrow, the BaseExpr</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="comment">// must have pointer type, and the accessed type is the pointee.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keywordflow">return</span> Owned(<a class="code" href="classclang_1_1CXXDependentScopeMemberExpr.html#a36563b8eec865455570eb3a6a14da998">CXXDependentScopeMemberExpr::Create</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, BaseExpr, BaseType,</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> IsArrow, OpLoc,</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a39276dfded0dab7f252f05c9f643996f" title="Retrieve a nested-name-specifier with location information, copied into the given AST context...">getWithLocInContext</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>),</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> TemplateKWLoc,</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> FirstQualifierInScope,</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> NameInfo, TemplateArgs));</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> }</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="comment"></span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="comment">/// We know that the given qualified member reference points only to</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="comment">/// declarations which do not belong to the static type of the base</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="comment">/// expression. Diagnose the problem.</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a99b64058386c930cd551d9296baf8111"> 473</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="SemaExprMember_8cpp.html#a99b64058386c930cd551d9296baf8111">DiagnoseQualifiedMemberReference</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>,</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *BaseExpr,</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> BaseType,</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="keyword">const</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="l00477"></a><span class="lineno"> 477</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *rep,</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &nameInfo) {</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="comment">// If this is an implicit member access, use a different set of</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="comment">// diagnostics.</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="keywordflow">if</span> (!BaseExpr)</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="keywordflow">return</span> <a class="code" href="SemaExprMember_8cpp.html#a5832294f531f72b5ca5f5ad290a7b00c" title="Diagnose a reference to a field with no object available.">diagnoseInstanceReference</a>(SemaRef, SS, rep, nameInfo);</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(nameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a47f8f8d3dab3d4ae666ac99f15b58b02" title="getLoc - Returns the main location of the declaration name.">getLoc</a>(), diag::err_qualified_member_of_unrelated)</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> << SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>() << rep << BaseType;</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> </div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="comment">// Check whether the declarations we found through a nested-name</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="comment">// specifier in a member expression are actually members of the base</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment">// type. The restriction here is:</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">// C++ [expr.ref]p2:</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="comment">// ... In these cases, the id-expression shall name a</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="comment">// member of the class or of one of its base classes.</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">// So it's perfectly legitimate for the nested-name specifier to name</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="comment">// an unrelated class, and for us to find an overload set including</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="comment">// decls from classes which are not superclasses, as long as the decl</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="comment">// we actually pick through overload resolution is from a superclass.</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#afb3ef70d66f362110f94cf18340d2c1a"> 500</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Sema.html#afb3ef70d66f362110f94cf18340d2c1a">Sema::CheckQualifiedMemberReference</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *BaseExpr,</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> BaseType,</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="keyword">const</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="l00503"></a><span class="lineno"> 503</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R) {</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *BaseRecord =</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> cast_or_null<CXXRecordDecl>(computeDeclContext(BaseType));</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="keywordflow">if</span> (!BaseRecord) {</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="comment">// We can't check this yet because the base type is still</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="comment">// dependent.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> assert(BaseType-><a class="code" href="classclang_1_1Type.html#a7e475b7859ae970eb837da95e94ab26c">isDependentType</a>());</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="keywordflow">return</span> <span class="keyword">false</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> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1UnresolvedSetIterator.html">LookupResult::iterator</a> I = R.<a class="code" href="classclang_1_1LookupResult.html#a460debe22c59694c326b3c4671726889">begin</a>(), E = R.<a class="code" href="classclang_1_1LookupResult.html#ae1db847b7820acee0a0371510ccdf1c9">end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="comment">// If this is an implicit member reference and we find a</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="comment">// non-instance member, it's not an error.</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="keywordflow">if</span> (!BaseExpr && !(*I)->isCXXInstanceMember())</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="comment">// Note that we use the DC of the decl, not the underlying decl.</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = (*I)->getDeclContext();</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keywordflow">while</span> (DC-><a class="code" href="classclang_1_1DeclContext.html#abbf5a92a55d4faa4150ee8fd46a60345">isTransparentContext</a>())</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> DC = DC-><a class="code" href="classclang_1_1DeclContext.html#a31c99b38017e8d702fda9c0f1d021186" title="getParent - Returns the containing DeclContext.">getParent</a>();</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> (!DC-><a class="code" href="classclang_1_1DeclContext.html#a85027c592c0fa8ffa83e2570089217a7">isRecord</a>())</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keywordflow">continue</span>;</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> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *MemberRecord = cast<CXXRecordDecl>(DC)->getCanonicalDecl();</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="keywordflow">if</span> (BaseRecord-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>() == MemberRecord ||</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> !BaseRecord-><a class="code" href="classclang_1_1CXXRecordDecl.html#a858bfa3ead5c26da76e366a851961802" title="Determine whether this class is provably not derived from the type Base.">isProvablyNotDerivedFrom</a>(MemberRecord))</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> }</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <a class="code" href="SemaExprMember_8cpp.html#a99b64058386c930cd551d9296baf8111">DiagnoseQualifiedMemberReference</a>(*<span class="keyword">this</span>, BaseExpr, BaseType, SS,</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> R.<a class="code" href="classclang_1_1LookupResult.html#a67d43ac1334ede6ef1fd8fa13d885c74" title="Fetches a representative decl. Useful for lazy diagnostics.">getRepresentativeDecl</a>(),</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> R.<a class="code" href="classclang_1_1LookupResult.html#a3c8df5e842b84094a77239c37c6231ae" title="Gets the name info to look up.">getLookupNameInfo</a>());</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> }</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="comment">// Callback to only accept typo corrections that are either a ValueDecl or a</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="comment">// FunctionTemplateDecl and are declared in the current record or, for a C++</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="comment">// classes, one of its base classes.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="keyword">class </span>RecordMemberExprValidatorCCC : <span class="keyword">public</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> {</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="keyword">explicit</span> RecordMemberExprValidatorCCC(<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *RTy)</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> : Record(RTy->getDecl()) {}</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateCandidate(<span class="keyword">const</span> <a class="code" href="classclang_1_1TypoCorrection.html" title="Simple class containing the result of Sema::CorrectTypo.">TypoCorrection</a> &candidate) {</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *ND = candidate.<a class="code" href="classclang_1_1TypoCorrection.html#a29de9b01d96527ae25ce1c2b7d45f7b6" title="Gets the pointer to the declaration of the typo correction.">getCorrectionDecl</a>();</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="comment">// Don't accept candidates that cannot be member functions, constants,</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="comment">// variables, or templates.</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">if</span> (!ND || !(isa<ValueDecl>(ND) || isa<FunctionTemplateDecl>(ND)))</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="comment">// Accept candidates that occur in the current record.</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="keywordflow">if</span> (Record->containsDecl(ND))</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD = dyn_cast<CXXRecordDecl>(Record)) {</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="comment">// Accept candidates that occur in any of the current class' base classes.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CXXBaseSpecifier.html" title="Represents a base class of a C++ class.">CXXRecordDecl::base_class_const_iterator</a> BS = RD->bases_begin(),</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> BSEnd = RD->bases_end();</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> BS != BSEnd; ++BS) {</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *BSTy = dyn_cast_or_null<RecordType>(</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> BS->getType().getTypePtrOrNull())) {</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="keywordflow">if</span> (BSTy->getDecl()->containsDecl(ND))</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> }</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> }</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> }</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> }</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *<span class="keyword">const</span> Record;</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> };</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</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> </div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="keyword">static</span> <span class="keywordtype">bool</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a4034b77c69a2f0323ba612ac49120dc8"> 583</a></span> <a class="code" href="SemaExprMember_8cpp.html#a4034b77c69a2f0323ba612ac49120dc8">LookupMemberExprInRecord</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>, <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R, </div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> BaseRange, <span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *RTy,</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> OpLoc, <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="l00586"></a><span class="lineno"> 586</span> <span class="keywordtype">bool</span> HasTemplateArgs) {</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RDecl = RTy-><a class="code" href="classclang_1_1RecordType.html#a312ab3ebe179cc7d8692c07479c91076">getDecl</a>();</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">if</span> (!SemaRef.<a class="code" href="classclang_1_1Sema.html#aa7c876733c69e9f14b6d43960f75d763" title="Determine whether the given type is the type of *this that is used outside of the body of a member fu...">isThisOutsideMemberFunctionBody</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a>(RTy, 0)) &&</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#a4648f07425b7f681fed586a4280957fd" title="Ensure that the type T is a complete type.">RequireCompleteType</a>(OpLoc, <a class="code" href="classclang_1_1QualType.html">QualType</a>(RTy, 0),</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> diag::err_typecheck_incomplete_tag,</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> BaseRange))</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="keywordflow">if</span> (HasTemplateArgs) {</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="comment">// LookupTemplateName doesn't expect these both to exist simultaneously.</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> ObjectType = SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>() ? <a class="code" href="classclang_1_1QualType.html">QualType</a>() : <a class="code" href="classclang_1_1QualType.html">QualType</a>(RTy, 0);</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="keywordtype">bool</span> MOUS;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#addc17d59a794fec8dc1396f6995bde98">LookupTemplateName</a>(R, 0, SS, ObjectType, <span class="keyword">false</span>, MOUS);</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> }</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = RDecl;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>()) {</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="comment">// If the member name was a qualified-id, look into the</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="comment">// nested-name-specifier.</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> DC = SemaRef.<a class="code" href="classclang_1_1Sema.html#aa87cf42fde12a9e06a3b076a63198c7a" title="Compute the DeclContext that is associated with the given type.">computeDeclContext</a>(SS, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="keywordflow">if</span> (SemaRef.<a class="code" href="classclang_1_1Sema.html#a236eb84a197bfbbdbd0e52df9e04673d" title="Require that the context specified by SS be complete.">RequireCompleteDeclContext</a>(SS, DC)) {</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>(), diag::err_typecheck_incomplete_tag)</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> << SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>() << DC;</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</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> assert(DC && <span class="stringliteral">"Cannot handle non-computable dependent contexts in lookup"</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> <span class="keywordflow">if</span> (!isa<TypeDecl>(DC)) {</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>(), diag::err_qualified_member_nonclass)</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> << DC << SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>();</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> }</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> }</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="comment">// The record definition is complete, now look up the member.</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ac5f5d2a5b4d98cf9d59b45044b83fd53" title="Perform qualified name lookup into a given context.">LookupQualifiedName</a>(R, DC);</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="keywordflow">if</span> (!R.<a class="code" href="classclang_1_1LookupResult.html#a9f44c1cd9d9c7e84dd0202538dd72cd7" title="Return true if no decls were found.">empty</a>())</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="comment">// We didn't find anything with the given name, so try to correct</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="comment">// for typos.</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> Name = R.<a class="code" href="classclang_1_1LookupResult.html#a3dd82d154e991b574d70a6a5aba8c61b" title="Gets the name to look up.">getLookupName</a>();</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> RecordMemberExprValidatorCCC Validator(RTy);</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <a class="code" href="classclang_1_1TypoCorrection.html" title="Simple class containing the result of Sema::CorrectTypo.">TypoCorrection</a> Corrected = SemaRef.<a class="code" href="classclang_1_1Sema.html#a56bda9492c25602dc50508a4170268ef" title="Try to "correct" a typo in the source code by finding visible declarations whose names are similar to...">CorrectTypo</a>(R.<a class="code" href="classclang_1_1LookupResult.html#a3c8df5e842b84094a77239c37c6231ae" title="Gets the name info to look up.">getLookupNameInfo</a>(),</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> R.<a class="code" href="classclang_1_1LookupResult.html#a915bb2f2bfa4bd99bf3d546e6568003f" title="Gets the kind of lookup to perform.">getLookupKind</a>(), <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>,</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> &SS, Validator, DC);</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> R.<a class="code" href="classclang_1_1LookupResult.html#a66106ede3de224099b3d0bdef5e0094e" title="Clears out any current state.">clear</a>();</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="keywordflow">if</span> (Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#a66458bef97c5de23910ff675260360d9">isResolved</a>() && !Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#a2802c9ba996a36c99542f64c569e6c53">isKeyword</a>()) {</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> R.<a class="code" href="classclang_1_1LookupResult.html#a753b593b8bc113110a38aa8d8ebaf1af" title="Sets the name to look up.">setLookupName</a>(Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#ac7d7b1a630aa887bf1289d3a3048ed6c" title="Gets the DeclarationName of the typo correction.">getCorrection</a>());</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1TypoCorrection.html#a06ceba51d522d4edf9edfa920cae670c">TypoCorrection::decl_iterator</a> DI = Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#a9b748b96e6f1eb0c4ae66fb7fbe7d8b7">begin</a>(),</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> DIEnd = Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#a93e560e7188bbd380f4557bc9f1f0bdb">end</a>();</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> DI != DIEnd; ++DI) {</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> R.<a class="code" href="classclang_1_1LookupResult.html#a62d3dbd6c56a75cad9685c81817253ac" title="Add a declaration to these results with its natural access. Does not test the acceptance criteria...">addDecl</a>(*DI);</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> R.<a class="code" href="classclang_1_1LookupResult.html#a7bca9f6ca6b6a32dca0ac2dfc8568261" title="Resolves the result kind of the lookup, possibly hiding decls.">resolveKind</a>();</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">// If we're typo-correcting to an overloaded name, we don't yet have enough</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="comment">// information to do overload resolution, so we don't know which previous</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="comment">// declaration to point to.</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="keywordflow">if</span> (Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#a427cebbdd4fb14cb2c75b1e7decf9a94">isOverloaded</a>())</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#ad26335dca444269985de182790ca5ca4" title="Clears the list of NamedDecls before adding the new one.">setCorrectionDecl</a>(0);</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="keywordtype">bool</span> DroppedSpecifier =</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#a92cf1df89287285322fe842c82132563">WillReplaceSpecifier</a>() &&</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> Name.<a class="code" href="classclang_1_1DeclarationName.html#acdcc2ae303f4e46575a08e2ba278dd33" title="getNameAsString - Retrieve the human-readable string for this name.">getAsString</a>() == Corrected.<a class="code" href="classclang_1_1TypoCorrection.html#a0559280d5421d76229fbc01970efb567">getAsString</a>(SemaRef.<a class="code" href="classclang_1_1Sema.html#a5f632d714a520550786bde65d3771228">getLangOpts</a>());</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ac282105147675560aa1344dcf17aeaa0">diagnoseTypo</a>(Corrected,</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#ac4e72de7865043558a71912b3bfd8f91" title="Build a partial diagnostic.">PDiag</a>(diag::err_no_member_suggest)</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> << Name << DC << DroppedSpecifier << SS.getRange());</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> }</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> }</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l00664"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#a327a53f6892656efa0374375219b9783"> 664</a></span> <a class="code" href="classclang_1_1Sema.html#a327a53f6892656efa0374375219b9783">Sema::BuildMemberReferenceExpr</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1Base.html">Base</a>, <a class="code" href="classclang_1_1QualType.html">QualType</a> BaseType,</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> OpLoc, <span class="keywordtype">bool</span> IsArrow,</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</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="l00667"></a><span class="lineno"> 667</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,</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FirstQualifierInScope,</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &NameInfo,</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> *TemplateArgs) {</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="keywordflow">if</span> (BaseType-><a class="code" href="classclang_1_1Type.html#a7e475b7859ae970eb837da95e94ab26c">isDependentType</a>() ||</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>() && isDependentScopeSpecifier(SS)))</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="keywordflow">return</span> ActOnDependentMemberExpr(Base, BaseType,</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> IsArrow, OpLoc,</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> SS, TemplateKWLoc, FirstQualifierInScope,</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> NameInfo, TemplateArgs);</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> <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> R(*<span class="keyword">this</span>, NameInfo, LookupMemberName);</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> </div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="comment">// Implicit member accesses.</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="keywordflow">if</span> (!Base) {</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> RecordTy = BaseType;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="keywordflow">if</span> (IsArrow) RecordTy = RecordTy-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>()->getPointeeType();</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="keywordflow">if</span> (<a class="code" href="SemaExprMember_8cpp.html#a4034b77c69a2f0323ba612ac49120dc8">LookupMemberExprInRecord</a>(*<span class="keyword">this</span>, R, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(),</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> RecordTy-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1RecordType.html">RecordType</a>>(),</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> OpLoc, SS, TemplateArgs != 0))</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="comment">// Explicit member accesses.</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> <a class="code" href="classclang_1_1ActionResult.html">BaseResult</a> = Owned(Base);</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> Result =</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> LookupMemberExpr(R, BaseResult, IsArrow, OpLoc,</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> SS, <span class="comment">/*ObjCImpDecl*/</span> 0, TemplateArgs != 0);</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> </div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="keywordflow">if</span> (BaseResult.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>())</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> Base = BaseResult.<a class="code" href="classclang_1_1ActionResult.html#a938165c101b60e87ee1956ed4950fd9a">take</a>();</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> </div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="keywordflow">if</span> (Result.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>()) {</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> Owned(Base);</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> }</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> </div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keywordflow">if</span> (Result.<a class="code" href="classclang_1_1ActionResult.html#a75d6bbdafaa638e85809e113629401ca">get</a>())</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> </div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="comment">// LookupMemberExpr can modify Base, and thus change BaseType</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> BaseType = Base-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> }</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="keywordflow">return</span> BuildMemberReferenceExpr(Base, BaseType,</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> OpLoc, IsArrow, SS, TemplateKWLoc,</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> FirstQualifierInScope, R, TemplateArgs);</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> }</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="keyword">static</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <a class="code" href="SemaExprMember_8cpp.html#a3473a90a97fb8eb0849bd494915bcdde">BuildFieldReferenceExpr</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <a class="code" href="classclang_1_1Expr.html">Expr</a> *BaseExpr, <span class="keywordtype">bool</span> IsArrow,</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> &SS, <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *Field,</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <a class="code" href="classclang_1_1DeclAccessPair.html">DeclAccessPair</a> FoundDecl,</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &MemberNameInfo);</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> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l00724"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#a4442a678628327243fc2b51be3b80479"> 724</a></span> <a class="code" href="classclang_1_1Sema.html#a4442a678628327243fc2b51be3b80479">Sema::BuildAnonymousStructUnionMemberReference</a>(<span class="keyword">const</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="l00725"></a><span class="lineno"> 725</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="namespaceclang_1_1ast__matchers.html#af2a0068a0d7c4962e52a7a70967fa5df" title="Matches TypeLocs for which the given inner QualType-matcher matches.">loc</a>,</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <a class="code" href="classclang_1_1IndirectFieldDecl.html">IndirectFieldDecl</a> *indirectField,</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <a class="code" href="classclang_1_1DeclAccessPair.html">DeclAccessPair</a> foundDecl,</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *baseObjectExpr,</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> opLoc) {</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="comment">// First, build the expression that refers to the base object.</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="keywordtype">bool</span> baseObjectIsPointer = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <a class="code" href="classclang_1_1Qualifiers.html">Qualifiers</a> baseQuals;</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="comment">// Case 1: the base of the indirect field is not a field.</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *baseVariable = indirectField-><a class="code" href="classclang_1_1IndirectFieldDecl.html#aed90030faafc49718eee1937c8138804">getVarDecl</a>();</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> EmptySS;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="keywordflow">if</span> (baseVariable) {</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> assert(baseVariable-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>()-><a class="code" href="classclang_1_1Type.html#a6525adb10d549a7ee372424dcdb6b9bd">isRecordType</a>());</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">// In principle we could have a member access expression that</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="comment">// accesses an anonymous struct/union that's a static member of</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="comment">// the base object's class. However, under the current standard,</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="comment">// static data members cannot be anonymous structs or unions.</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="comment">// Supporting this is as easy as building a MemberExpr here.</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> assert(!baseObjectExpr && <span class="stringliteral">"anonymous struct/union is static data member?"</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> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> baseNameInfo(<a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a>(), loc);</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> </div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> result </div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> = BuildDeclarationNameExpr(EmptySS, baseNameInfo, baseVariable);</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="keywordflow">if</span> (result.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>()) <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> </div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> baseObjectExpr = result.<a class="code" href="classclang_1_1ActionResult.html#a938165c101b60e87ee1956ed4950fd9a">take</a>(); </div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> baseObjectIsPointer = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> baseQuals = baseObjectExpr-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>().<a class="code" href="classclang_1_1QualType.html#a4a3d75cf019a2e769498ef8d6878888b" title="Retrieve the set of qualifiers applied to this type.">getQualifiers</a>();</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="comment">// Case 2: the base of the indirect field is a field and the user</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="comment">// wrote a member expression.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (baseObjectExpr) {</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="comment">// The caller provided the base object expression. Determine</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="comment">// whether its a pointer and whether it adds any qualifiers to the</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="comment">// anonymous struct/union fields we're looking into.</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> objectType = baseObjectExpr-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *ptr = objectType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>()) {</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> baseObjectIsPointer = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> objectType = ptr-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>();</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> baseObjectIsPointer = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> }</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> baseQuals = objectType.<a class="code" href="classclang_1_1QualType.html#a4a3d75cf019a2e769498ef8d6878888b" title="Retrieve the set of qualifiers applied to this type.">getQualifiers</a>();</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> </div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="comment">// Case 3: the base of the indirect field is a field and we should</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="comment">// build an implicit member access.</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="comment">// We've found a member of an anonymous struct/union that is</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="comment">// inside a non-anonymous struct/union, so in a well-formed</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="comment">// program our base object expression is "this".</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> ThisTy = getCurrentThisType();</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="keywordflow">if</span> (ThisTy.<a class="code" href="classclang_1_1QualType.html#a8f87f58000490ad01cd09add1f27d7ac" title="isNull - Return true if this QualType doesn't point to a type yet.">isNull</a>()) {</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(loc, diag::err_invalid_member_use_in_static_method)</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> << indirectField-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>();</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> }</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> </div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="comment">// Our base object expression is "this".</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> CheckCXXThisCapture(loc);</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> baseObjectExpr </div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> = <span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1CXXThisExpr.html" title="Represents the this expression in C++.">CXXThisExpr</a>(loc, ThisTy, <span class="comment">/*isImplicit=*/</span> <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> baseObjectIsPointer = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> baseQuals = ThisTy-><a class="code" href="classclang_1_1Type.html#ac4a3f2c505332c3c556bd20497d1a5c3">castAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>()->getPointeeType().getQualifiers();</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> }</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="comment">// Build the implicit member references to the field of the</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="comment">// anonymous struct/union.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *result = baseObjectExpr;</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <a class="code" href="classclang_1_1IndirectFieldDecl.html#a6a0fd4de9f1a53fb21791d50c9ed2abc">IndirectFieldDecl::chain_iterator</a></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> FI = indirectField-><a class="code" href="classclang_1_1IndirectFieldDecl.html#a6fc82272044f7f5834621a2f9d66540d">chain_begin</a>(), FEnd = indirectField-><a class="code" href="classclang_1_1IndirectFieldDecl.html#a844b66f0d6ce8af21722f424e884e6d0">chain_end</a>();</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="comment">// Build the first member access in the chain with full information.</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="keywordflow">if</span> (!baseVariable) {</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *field = cast<FieldDecl>(*FI);</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> </div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <span class="comment">// Make a nameInfo that properly uses the anonymous name.</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> memberNameInfo(field-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), <a class="code" href="namespaceclang_1_1ast__matchers.html#af2a0068a0d7c4962e52a7a70967fa5df" title="Matches TypeLocs for which the given inner QualType-matcher matches.">loc</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> result = <a class="code" href="SemaExprMember_8cpp.html#a3473a90a97fb8eb0849bd494915bcdde">BuildFieldReferenceExpr</a>(*<span class="keyword">this</span>, result, baseObjectIsPointer,</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> EmptySS, field, foundDecl,</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> memberNameInfo).<a class="code" href="classclang_1_1ActionResult.html#a938165c101b60e87ee1956ed4950fd9a">take</a>();</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="keywordflow">if</span> (!result)</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</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> baseObjectIsPointer = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> </div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="comment">// FIXME: check qualified member access</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> }</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> </div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> <span class="comment">// In all cases, we should now skip the first declaration in the chain.</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> ++FI;</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> </div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="keywordflow">while</span> (FI != FEnd) {</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *field = cast<FieldDecl>(*FI++);</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="comment">// FIXME: these are somewhat meaningless</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> memberNameInfo(field-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), <a class="code" href="namespaceclang_1_1ast__matchers.html#af2a0068a0d7c4962e52a7a70967fa5df" title="Matches TypeLocs for which the given inner QualType-matcher matches.">loc</a>);</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <a class="code" href="classclang_1_1DeclAccessPair.html">DeclAccessPair</a> fakeFoundDecl =</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <a class="code" href="classclang_1_1DeclAccessPair.html#a40bf16940069615f789f599664048241">DeclAccessPair::make</a>(field, field-><a class="code" href="classclang_1_1Decl.html#a81e82461f69e9a50e129ef4bfac42987">getAccess</a>());</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> result = <a class="code" href="SemaExprMember_8cpp.html#a3473a90a97fb8eb0849bd494915bcdde">BuildFieldReferenceExpr</a>(*<span class="keyword">this</span>, result, <span class="comment">/*isarrow*/</span> <span class="keyword">false</span>,</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> (FI == FEnd? SS : EmptySS), field,</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> fakeFoundDecl, memberNameInfo).<a class="code" href="classclang_1_1ActionResult.html#a938165c101b60e87ee1956ed4950fd9a">take</a>();</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> }</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> </div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="keywordflow">return</span> Owned(result);</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> }</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> </div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <span class="keyword">static</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l00839"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#ab2cb8b8ab8ba0177ccc5b8e4a985ece5"> 839</a></span> <a class="code" href="SemaExprMember_8cpp.html#ab2cb8b8ab8ba0177ccc5b8e4a985ece5">BuildMSPropertyRefExpr</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <a class="code" href="classclang_1_1Expr.html">Expr</a> *BaseExpr, <span class="keywordtype">bool</span> IsArrow,</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="keyword">const</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="l00841"></a><span class="lineno"> 841</span> <a class="code" href="classclang_1_1MSPropertyDecl.html">MSPropertyDecl</a> *PD,</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &NameInfo) {</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="comment">// Property names are always simple identifiers and therefore never</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="comment">// require any interesting additional storage.</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="keywordflow">return</span> <span class="keyword">new</span> (S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>) <a class="code" href="classclang_1_1MSPropertyRefExpr.html" title="A member reference to an MSPropertyDecl.">MSPropertyRefExpr</a>(BaseExpr, PD, IsArrow,</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a87abdcb929904305709de24d315f3c4e">PseudoObjectTy</a>, <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>,</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a39276dfded0dab7f252f05c9f643996f" title="Retrieve a nested-name-specifier with location information, copied into the given AST context...">getWithLocInContext</a>(S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>),</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> NameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a47f8f8d3dab3d4ae666ac99f15b58b02" title="getLoc - Returns the main location of the declaration name.">getLoc</a>());</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> }</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="comment"></span></div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="comment">/// \brief Build a MemberExpr AST node.</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#aec6106693249688b3d7b4da481408614"> 852</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classclang_1_1MemberExpr.html">MemberExpr</a> *<a class="code" href="SemaExprMember_8cpp.html#aec6106693249688b3d7b4da481408614" title="Build a MemberExpr AST node.">BuildMemberExpr</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>,</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &C, <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1Base.html">Base</a>, <span class="keywordtype">bool</span> isArrow,</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="keyword">const</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="l00855"></a><span class="lineno"> 855</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,</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a> *Member,</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <a class="code" href="classclang_1_1DeclAccessPair.html">DeclAccessPair</a> FoundDecl,</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &MemberNameInfo,</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty,</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340" title="The categorization of expression values, currently following the C++11 scheme.">ExprValueKind</a> VK, <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1" title="A further classification of the kind of object referenced by an l-value or x-value.">ExprObjectKind</a> OK,</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> *TemplateArgs = 0) {</div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> assert((!isArrow || Base-><a class="code" href="classclang_1_1Expr.html#a4cd56ea13000be78c5459f10df89e84a">isRValue</a>()) && <span class="stringliteral">"-> base must be a pointer rvalue"</span>);</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <a class="code" href="classclang_1_1MemberExpr.html">MemberExpr</a> *E =</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <a class="code" href="classclang_1_1MemberExpr.html#a12623f4cf10f73976348ee71d29f44bb">MemberExpr::Create</a>(C, Base, isArrow, SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a39276dfded0dab7f252f05c9f643996f" title="Retrieve a nested-name-specifier with location information, copied into the given AST context...">getWithLocInContext</a>(C),</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> TemplateKWLoc, Member, FoundDecl, MemberNameInfo,</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> TemplateArgs, Ty, VK, OK);</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> SemaRef.<a class="code" href="classclang_1_1Sema.html#adeec63ca9a84d6f3d40e30c2f6f2cbba" title="Perform reference-marking and odr-use handling for a MemberExpr.">MarkMemberReferenced</a>(E);</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="keywordflow">return</span> E;</div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> }</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> </div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l00872"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#a61c9221c59dca0e47365f34953970deb"> 872</a></span> <a class="code" href="classclang_1_1Sema.html#a327a53f6892656efa0374375219b9783">Sema::BuildMemberReferenceExpr</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *BaseExpr, <a class="code" href="classclang_1_1QualType.html">QualType</a> BaseExprType,</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> OpLoc, <span class="keywordtype">bool</span> IsArrow,</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="keyword">const</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="l00875"></a><span class="lineno"> 875</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,</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FirstQualifierInScope,</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R,</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> *TemplateArgs,</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="keywordtype">bool</span> SuppressQualifierCheck,</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <a class="code" href="structclang_1_1Sema_1_1ActOnMemberAccessExtraArgs.html">ActOnMemberAccessExtraArgs</a> *ExtraArgs) {</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> BaseType = BaseExprType;</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="keywordflow">if</span> (IsArrow) {</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> assert(BaseType-><a class="code" href="classclang_1_1Type.html#a1c0038a55083ee0a292a020038ee04d8">isPointerType</a>());</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> BaseType = BaseType-><a class="code" href="classclang_1_1Type.html#ac4a3f2c505332c3c556bd20497d1a5c3">castAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>()->getPointeeType();</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> }</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> R.<a class="code" href="classclang_1_1LookupResult.html#a4650fa03b2823b712bdae1dd70ade251" title="Sets the base object type for this lookup.">setBaseObjectType</a>(BaseType);</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> </div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <a class="code" href="classclang_1_1sema_1_1LambdaScopeInfo.html">LambdaScopeInfo</a> *<span class="keyword">const</span> CurLSI = getCurLambda();</div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="comment">// If this is an implicit member reference and the overloaded</span></div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="comment">// name refers to both static and non-static member functions</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="comment">// (i.e. BaseExpr is null) and if we are currently processing a lambda, </span></div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="comment">// check if we should/can capture 'this'...</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> <span class="comment">// Keep this example in mind:</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="comment">// struct X {</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> <span class="comment">// void f(int) { }</span></div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="comment">// static void f(double) { }</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="comment">// int g() {</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="comment">// auto L = [=](auto a) { </span></div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="comment">// return [](int i) {</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="comment">// return [=](auto b) {</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="comment">// f(b); </span></div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="comment">// //f(decltype(a){});</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="comment">// };</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="comment">// };</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> <span class="comment">// };</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> <span class="comment">// auto M = L(0.0); </span></div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> <span class="comment">// auto N = M(3);</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="comment">// N(5.32); // OK, must not error. </span></div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="comment">// return 0;</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="comment">// }</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="comment">// };</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="keywordflow">if</span> (!BaseExpr && CurLSI) {</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</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 = R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>();</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#acdaac0809b0eec9ce9ec88e1a9da7fb6">isValid</a>())</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> Loc = SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(); </div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *EnclosingFunctionCtx = CurContext-><a class="code" href="classclang_1_1DeclContext.html#a31c99b38017e8d702fda9c0f1d021186" title="getParent - Returns the containing DeclContext.">getParent</a>()-><a class="code" href="classclang_1_1DeclContext.html#a31c99b38017e8d702fda9c0f1d021186" title="getParent - Returns the containing DeclContext.">getParent</a>();</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="comment">// If the enclosing function is not dependent, then this lambda is </span></div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="comment">// capture ready, so if we can capture this, do so.</span></div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <span class="keywordflow">if</span> (!EnclosingFunctionCtx-><a class="code" href="classclang_1_1DeclContext.html#a0d06ccd1db1b1f60e91d95d50aeae75d" title="Determines whether this context is dependent on a template parameter.">isDependentContext</a>()) {</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> <span class="comment">// If the current lambda and all enclosing lambdas can capture 'this' -</span></div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="comment">// then go ahead and capture 'this' (since our unresolved overload set </span></div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="comment">// contains both static and non-static member functions). </span></div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="keywordflow">if</span> (!CheckCXXThisCapture(Loc, <span class="comment">/*Explcit*/</span><span class="keyword">false</span>, <span class="comment">/*Diagnose*/</span><span class="keyword">false</span>))</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> CheckCXXThisCapture(Loc);</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (CurContext->isDependentContext()) { </div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="comment">// ... since this is an implicit member reference, that might potentially</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> <span class="comment">// involve a 'this' capture, mark 'this' for potential capture in </span></div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="comment">// enclosing lambdas.</span></div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> <span class="keywordflow">if</span> (CurLSI-><a class="code" href="classclang_1_1sema_1_1CapturingScopeInfo.html#a5da09bddbd5de9224d9815769fcae173">ImpCaptureStyle</a> != CurLSI-><a class="code" href="classclang_1_1sema_1_1CapturingScopeInfo.html#ac5dd383003c5fa015d574548c40621b4a9396ad96b81b17b617181fbd7eab7299">ImpCap_None</a>)</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> CurLSI-><a class="code" href="classclang_1_1sema_1_1LambdaScopeInfo.html#a973b5d63115814da63e90c21f7b74a67">addPotentialThisCapture</a>(Loc);</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> }</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> }</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &MemberNameInfo = R.<a class="code" href="classclang_1_1LookupResult.html#a3c8df5e842b84094a77239c37c6231ae" title="Gets the name info to look up.">getLookupNameInfo</a>();</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> MemberName = MemberNameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a4a662304441c06d60ec1764e515337c4" title="getName - Returns the embedded declaration name.">getName</a>();</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</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> MemberLoc = MemberNameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a47f8f8d3dab3d4ae666ac99f15b58b02" title="getLoc - Returns the main location of the declaration name.">getLoc</a>();</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="keywordflow">if</span> (R.<a class="code" href="classclang_1_1LookupResult.html#ad40ced676b01c7ef20a8a3612869bf54">isAmbiguous</a>())</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> </div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="keywordflow">if</span> (R.<a class="code" href="classclang_1_1LookupResult.html#a9f44c1cd9d9c7e84dd0202538dd72cd7" title="Return true if no decls were found.">empty</a>()) {</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="comment">// Rederive where we looked up.</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>()</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> ? computeDeclContext(SS, <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> : BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1RecordType.html">RecordType</a>>()->getDecl());</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">if</span> (ExtraArgs) {</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> RetryExpr;</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="keywordflow">if</span> (!IsArrow && BaseExpr) {</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <a class="code" href="classclang_1_1Sema_1_1SFINAETrap.html" title="RAII class used to determine whether SFINAE has trapped any errors that occur during template argumen...">SFINAETrap</a> Trap(*<span class="keyword">this</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <a class="code" href="classclang_1_1OpaquePtr.html">ParsedType</a> ObjectType;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="keywordtype">bool</span> MayBePseudoDestructor = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> RetryExpr = ActOnStartCXXMemberReference(getCurScope(), BaseExpr,</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> OpLoc, tok::arrow, ObjectType,</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> MayBePseudoDestructor);</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="keywordflow">if</span> (RetryExpr.<a class="code" href="classclang_1_1ActionResult.html#ae70d0a2fa83269f71f1634cb9e0dc3d6">isUsable</a>() && !Trap.<a class="code" href="classclang_1_1Sema_1_1SFINAETrap.html#abf404c6af5d21ad7887d3c2d4dc3e002" title="Determine whether any SFINAE errors have been trapped.">hasErrorOccurred</a>()) {</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> TempSS(SS);</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> RetryExpr = ActOnMemberAccessExpr(</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> ExtraArgs-><a class="code" href="structclang_1_1Sema_1_1ActOnMemberAccessExtraArgs.html#a67005267501aa86840b3e60f0a47ac88">S</a>, RetryExpr.<a class="code" href="classclang_1_1ActionResult.html#a75d6bbdafaa638e85809e113629401ca">get</a>(), OpLoc, tok::arrow, TempSS,</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> TemplateKWLoc, ExtraArgs-><a class="code" href="structclang_1_1Sema_1_1ActOnMemberAccessExtraArgs.html#a903b3eb0d616de0c8612ffaaf8d9bbf4">Id</a>, ExtraArgs-><a class="code" href="structclang_1_1Sema_1_1ActOnMemberAccessExtraArgs.html#ae9589f0d7eb6aacc37e3a67a16c2ee68">ObjCImpDecl</a>,</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> ExtraArgs-><a class="code" href="structclang_1_1Sema_1_1ActOnMemberAccessExtraArgs.html#a29c6ba7f7e04fe135d11dd0644d86a08">HasTrailingLParen</a>);</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> }</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="keywordflow">if</span> (Trap.<a class="code" href="classclang_1_1Sema_1_1SFINAETrap.html#abf404c6af5d21ad7887d3c2d4dc3e002" title="Determine whether any SFINAE errors have been trapped.">hasErrorOccurred</a>())</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> RetryExpr = <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> }</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="keywordflow">if</span> (RetryExpr.<a class="code" href="classclang_1_1ActionResult.html#ae70d0a2fa83269f71f1634cb9e0dc3d6">isUsable</a>()) {</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(OpLoc, diag::err_no_member_overloaded_arrow)</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> << MemberName << DC << <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>(OpLoc, <span class="stringliteral">"->"</span>);</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="keywordflow">return</span> RetryExpr;</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> }</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> }</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> </div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>(), diag::err_no_member)</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> << MemberName << DC</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> << (BaseExpr ? BaseExpr-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>() : <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>());</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> }</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> </div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> <span class="comment">// Diagnose lookups that find only declarations from a non-base</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="comment">// type. This is possible for either qualified lookups (which may</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <span class="comment">// have been qualified with an unrelated type) or implicit member</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> <span class="comment">// expressions (which were found with unqualified lookup and thus</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> <span class="comment">// may have come from an enclosing scope). Note that it's okay for</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="comment">// lookup to find declarations from a non-base type as long as those</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="comment">// aren't the ones picked by overload resolution.</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="keywordflow">if</span> ((SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>() || !BaseExpr ||</div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> (isa<CXXThisExpr>(BaseExpr) &&</div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> cast<CXXThisExpr>(BaseExpr)->isImplicit())) &&</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> !SuppressQualifierCheck &&</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> CheckQualifiedMemberReference(BaseExpr, BaseType, SS, R))</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> </div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> <span class="comment">// Construct an unresolved result if we in fact got an unresolved</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="comment">// result.</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="keywordflow">if</span> (R.<a class="code" href="classclang_1_1LookupResult.html#a460a89166d56f42eb642f6fd504521a8" title="Determines if the results are overloaded.">isOverloadedResult</a>() || R.<a class="code" href="classclang_1_1LookupResult.html#a6326b8d5d3a53f7a8b867c0551ada679">isUnresolvableResult</a>()) {</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> <span class="comment">// Suppress any lookup-related diagnostics; we'll do these when we</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="comment">// pick a member.</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> R.<a class="code" href="classclang_1_1LookupResult.html#ae2764b699f93e9590281ce9c4b097e33">suppressDiagnostics</a>();</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <a class="code" href="classclang_1_1UnresolvedMemberExpr.html" title="Represents a C++ member access expression for which lookup produced a set of overloaded functions...">UnresolvedMemberExpr</a> *MemExpr</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> = <a class="code" href="classclang_1_1UnresolvedMemberExpr.html#aabdb1ab8772fe16688dc639a37747c91">UnresolvedMemberExpr::Create</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, R.<a class="code" href="classclang_1_1LookupResult.html#a6326b8d5d3a53f7a8b867c0551ada679">isUnresolvableResult</a>(),</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> BaseExpr, BaseExprType,</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> IsArrow, OpLoc,</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a39276dfded0dab7f252f05c9f643996f" title="Retrieve a nested-name-specifier with location information, copied into the given AST context...">getWithLocInContext</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>),</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> TemplateKWLoc, MemberNameInfo,</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> TemplateArgs, R.<a class="code" href="classclang_1_1LookupResult.html#a460debe22c59694c326b3c4671726889">begin</a>(), R.<a class="code" href="classclang_1_1LookupResult.html#ae1db847b7820acee0a0371510ccdf1c9">end</a>());</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> </div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="keywordflow">return</span> Owned(MemExpr);</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> </div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> assert(R.<a class="code" href="classclang_1_1LookupResult.html#aa262b3b1335fcc25968ca8aecd64e7eb">isSingleResult</a>());</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <a class="code" href="classclang_1_1DeclAccessPair.html">DeclAccessPair</a> FoundDecl = R.<a class="code" href="classclang_1_1LookupResult.html#a460debe22c59694c326b3c4671726889">begin</a>().<a class="code" href="classclang_1_1UnresolvedSetIterator.html#a8d31ef55bb8da11b7f0a6a4af9c764c9">getPair</a>();</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *MemberDecl = R.<a class="code" href="classclang_1_1LookupResult.html#a626e09f67bb669edefa962b5ae745344" title="Fetch the unique decl found by this lookup. Asserts that one was found.">getFoundDecl</a>();</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> </div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment">// FIXME: diagnose the presence of template arguments now.</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> </div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">// If the decl being referenced had an error, return an error for this</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="comment">// sub-expr without emitting another error, in order to avoid cascading</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment">// error cases.</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="keywordflow">if</span> (MemberDecl-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>())</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment">// Handle the implicit-member-access case.</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="keywordflow">if</span> (!BaseExpr) {</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment">// If this is not an instance member, convert to a non-member access.</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="keywordflow">if</span> (!MemberDecl-><a class="code" href="classclang_1_1NamedDecl.html#a614520a704fb5219e51ec678fa66103d" title="Determine whether the given declaration is an instance member of a C++ class.">isCXXInstanceMember</a>())</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="keywordflow">return</span> BuildDeclarationNameExpr(SS, R.<a class="code" href="classclang_1_1LookupResult.html#a3c8df5e842b84094a77239c37c6231ae" title="Gets the name info to look up.">getLookupNameInfo</a>(), MemberDecl);</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> </div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</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 = R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>();</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#acdaac0809b0eec9ce9ec88e1a9da7fb6">isValid</a>())</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> Loc = SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>();</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> CheckCXXThisCapture(Loc);</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> BaseExpr = <span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1CXXThisExpr.html" title="Represents the this expression in C++.">CXXThisExpr</a>(Loc, BaseExprType,<span class="comment">/*isImplicit=*/</span><span class="keyword">true</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> </div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="keywordtype">bool</span> ShouldCheckUse = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD = dyn_cast<CXXMethodDecl>(MemberDecl)) {</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">// Don't diagnose the use of a virtual member function unless it's</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment">// explicitly qualified.</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="keywordflow">if</span> (MD->isVirtual() && !SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>())</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> ShouldCheckUse = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> }</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> </div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment">// Check the use of this member.</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="keywordflow">if</span> (ShouldCheckUse && DiagnoseUseOfDecl(MemberDecl, MemberLoc)) {</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> Owned(BaseExpr);</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> }</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> </div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *FD = dyn_cast<FieldDecl>(MemberDecl))</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="keywordflow">return</span> <a class="code" href="SemaExprMember_8cpp.html#a3473a90a97fb8eb0849bd494915bcdde">BuildFieldReferenceExpr</a>(*<span class="keyword">this</span>, BaseExpr, IsArrow,</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> SS, FD, FoundDecl, MemberNameInfo);</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1MSPropertyDecl.html">MSPropertyDecl</a> *PD = dyn_cast<MSPropertyDecl>(MemberDecl))</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="keywordflow">return</span> <a class="code" href="SemaExprMember_8cpp.html#ab2cb8b8ab8ba0177ccc5b8e4a985ece5">BuildMSPropertyRefExpr</a>(*<span class="keyword">this</span>, BaseExpr, IsArrow, SS, PD,</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> MemberNameInfo);</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> </div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1IndirectFieldDecl.html">IndirectFieldDecl</a> *FD = dyn_cast<IndirectFieldDecl>(MemberDecl))</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment">// We may have found a field within an anonymous union or struct</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">// (C++ [class.union]).</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="keywordflow">return</span> BuildAnonymousStructUnionMemberReference(SS, MemberLoc, FD,</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> FoundDecl, BaseExpr,</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> OpLoc);</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> </div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var = dyn_cast<VarDecl>(MemberDecl)) {</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="keywordflow">return</span> Owned(<a class="code" href="SemaExprMember_8cpp.html#aec6106693249688b3d7b4da481408614" title="Build a MemberExpr AST node.">BuildMemberExpr</a>(*<span class="keyword">this</span>, <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, BaseExpr, IsArrow, SS,</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> TemplateKWLoc, Var, FoundDecl, MemberNameInfo,</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> Var->getType().getNonReferenceType(),</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>, <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a83fc60c978ed1f1be293f1d2fcb6b5c5" title="An ordinary object is located at an address in memory.">OK_Ordinary</a>));</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> }</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> </div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MemberFn = dyn_cast<CXXMethodDecl>(MemberDecl)) {</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340" title="The categorization of expression values, currently following the C++11 scheme.">ExprValueKind</a> valueKind;</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="namespaceclang_1_1ast__matchers.html#a82efb51f28681d561f9ce42fecf09d4b" title="Matches Types in the clang AST.">type</a>;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="keywordflow">if</span> (MemberFn->isInstance()) {</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> valueKind = <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a7486248bcb086a1f969a9e138208dcd7" title="An r-value expression (a pr-value in the C++11 taxonomy) produces a temporary value.">VK_RValue</a>;</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> type = <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a7fcf245139d35c3e1bf527187b0a6c40">BoundMemberTy</a>;</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> valueKind = <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>;</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> type = MemberFn->getType();</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> }</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> </div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="keywordflow">return</span> Owned(<a class="code" href="SemaExprMember_8cpp.html#aec6106693249688b3d7b4da481408614" title="Build a MemberExpr AST node.">BuildMemberExpr</a>(*<span class="keyword">this</span>, <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, BaseExpr, IsArrow, SS, </div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> TemplateKWLoc, MemberFn, FoundDecl, </div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> MemberNameInfo, type, valueKind,</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a83fc60c978ed1f1be293f1d2fcb6b5c5" title="An ordinary object is located at an address in memory.">OK_Ordinary</a>));</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> }</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> assert(!isa<FunctionDecl>(MemberDecl) && <span class="stringliteral">"member function not C++ method?"</span>);</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> </div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1EnumConstantDecl.html">EnumConstantDecl</a> *Enum = dyn_cast<EnumConstantDecl>(MemberDecl)) {</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="keywordflow">return</span> Owned(<a class="code" href="SemaExprMember_8cpp.html#aec6106693249688b3d7b4da481408614" title="Build a MemberExpr AST node.">BuildMemberExpr</a>(*<span class="keyword">this</span>, <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, BaseExpr, IsArrow, SS,</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> TemplateKWLoc, Enum, FoundDecl, MemberNameInfo,</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> Enum->getType(), <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a7486248bcb086a1f969a9e138208dcd7" title="An r-value expression (a pr-value in the C++11 taxonomy) produces a temporary value.">VK_RValue</a>, <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a83fc60c978ed1f1be293f1d2fcb6b5c5" title="An ordinary object is located at an address in memory.">OK_Ordinary</a>));</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> }</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> </div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> Owned(BaseExpr);</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> </div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">// We found something that we didn't expect. Complain.</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="keywordflow">if</span> (isa<TypeDecl>(MemberDecl))</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::err_typecheck_member_reference_type)</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> << MemberName << BaseType << int(IsArrow);</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::err_typecheck_member_reference_unknown)</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> << MemberName << BaseType << int(IsArrow);</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> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberDecl-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>(), diag::note_member_declared_here)</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> << MemberName;</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> R.<a class="code" href="classclang_1_1LookupResult.html#ae2764b699f93e9590281ce9c4b097e33">suppressDiagnostics</a>();</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> }</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment"></span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment">/// Given that normal member access failed on the given expression,</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">/// and given that the expression's type involves builtin-id or</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment">/// builtin-Class, decide whether substituting in the redefinition</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="comment">/// types would be profitable. The redefinition type is whatever</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment">/// this translation unit tried to typedef to id/Class; we store</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment">/// it to the side and then re-use it in places like this.</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a2204f53ed814e3f6cb3c512f0c9ac412"> 1119</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="SemaExprMember_8cpp.html#a2204f53ed814e3f6cb3c512f0c9ac412">ShouldTryAgainWithRedefinitionType</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> &base) {</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *opty</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> = base.<a class="code" href="classclang_1_1ActionResult.html#a75d6bbdafaa638e85809e113629401ca">get</a>()-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a>>();</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="keywordflow">if</span> (!opty) <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *ty = opty-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#abb391d91721464c0dc1eb15f333637a9">getObjectType</a>();</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> </div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> redef;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="keywordflow">if</span> (ty-><a class="code" href="classclang_1_1ObjCObjectType.html#ae18c2f18b07e28f2923d25694c0b153f">isObjCId</a>()) {</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> redef = S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a2e8eaafced53a1f1ab2e6cdd239fe40a" title="Retrieve the type that id has been defined to, which may be different from the built-in id if id has ...">getObjCIdRedefinitionType</a>();</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ty-><a class="code" href="classclang_1_1ObjCObjectType.html#a4c0774874411f66a0b6e9bb2dc48ab91">isObjCClass</a>()) {</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> redef = S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#ae39d4a7217a8822e558916ebbfd49eb7" title="Retrieve the type that Class has been defined to, which may be different from the built-in Class if C...">getObjCClassRedefinitionType</a>();</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> }</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> </div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment">// Do the substitution as long as the redefinition type isn't just a</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment">// possibly-qualified pointer to builtin-id or builtin-Class again.</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> opty = redef-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a>>();</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="keywordflow">if</span> (opty && !opty-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#abb391d91721464c0dc1eb15f333637a9">getObjectType</a>()-><a class="code" href="classclang_1_1ObjCObjectType.html#a768f52da9b3b79e70b48391b38388e40">getInterface</a>())</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> </div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> base = S.<a class="code" href="classclang_1_1Sema.html#a5120f756f6170ec92850d417f15318e1">ImpCastExprToType</a>(base.<a class="code" href="classclang_1_1ActionResult.html#a938165c101b60e87ee1956ed4950fd9a">take</a>(), redef, <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca183b8948b82911a415cc54446ddcb3ab">CK_BitCast</a>);</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> }</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> </div>
+<div class="line"><a name="l01145"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a5b32f1f5458cdcce08266b011ebd034b"> 1145</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="SemaExprMember_8cpp.html#a5b32f1f5458cdcce08266b011ebd034b">isRecordType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="keywordflow">return</span> T-><a class="code" href="classclang_1_1Type.html#a6525adb10d549a7ee372424dcdb6b9bd">isRecordType</a>();</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> }</div>
+<div class="line"><a name="l01148"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a29d996afa023b3358f44cfb05c25bca5"> 1148</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="SemaExprMember_8cpp.html#a29d996afa023b3358f44cfb05c25bca5">isPointerToRecordType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *PT = T-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>())</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="keywordflow">return</span> PT->getPointeeType()->isRecordType();</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</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"></span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment">/// Perform conversions on the LHS of a member access expression.</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment"></span><a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l01156"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#a3f31ba4afe2ee6803e5e79df2e2447bd"> 1156</a></span> <a class="code" href="classclang_1_1Sema.html#a3f31ba4afe2ee6803e5e79df2e2447bd" title="Perform conversions on the LHS of a member access expression.">Sema::PerformMemberExprBaseConversion</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1Base.html">Base</a>, <span class="keywordtype">bool</span> IsArrow) {</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="keywordflow">if</span> (IsArrow && !Base-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()-><a class="code" href="classclang_1_1Type.html#af0ae1f40cbbc07fabfefc86af91072e3">isFunctionType</a>())</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="keywordflow">return</span> DefaultFunctionArrayLvalueConversion(Base);</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> </div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="keywordflow">return</span> CheckPlaceholderExpr(Base);</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="comment"></span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment">/// Look up the given member of the given non-type-dependent</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment">/// expression. This can return in one of two ways:</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment">/// * If it returns a sentinel null-but-valid result, the caller will</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment">/// assume that lookup was performed and the results written into</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">/// the provided structure. It will take over from there.</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment">/// * Otherwise, the returned expression will be produced in place of</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment">/// an ordinary member expression.</span></div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment">/// The ObjCImpDecl bit is a gross hack that will need to be properly</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment">/// fixed for ObjC++.</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"></span><a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l01174"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#ae70d523f35318b2f4ff1fe67179a9b0e"> 1174</a></span> <a class="code" href="classclang_1_1Sema.html#ae70d523f35318b2f4ff1fe67179a9b0e">Sema::LookupMemberExpr</a>(<a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R, <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> &BaseExpr,</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="keywordtype">bool</span> &IsArrow, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> OpLoc,</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</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="l01177"></a><span class="lineno"> 1177</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *ObjCImpDecl, <span class="keywordtype">bool</span> HasTemplateArgs) {</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> assert(BaseExpr.<a class="code" href="classclang_1_1ActionResult.html#a75d6bbdafaa638e85809e113629401ca">get</a>() && <span class="stringliteral">"no base expression"</span>);</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">// Perform default conversions.</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> BaseExpr = PerformMemberExprBaseConversion(BaseExpr.take(), IsArrow);</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="keywordflow">if</span> (BaseExpr.isInvalid())</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</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> <a class="code" href="classclang_1_1QualType.html">QualType</a> BaseType = BaseExpr.get()->getType();</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> assert(!BaseType-><a class="code" href="classclang_1_1Type.html#a7e475b7859ae970eb837da95e94ab26c">isDependentType</a>());</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> </div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> MemberName = R.<a class="code" href="classclang_1_1LookupResult.html#a3dd82d154e991b574d70a6a5aba8c61b" title="Gets the name to look up.">getLookupName</a>();</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</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> MemberLoc = R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>();</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> </div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment">// For later type-checking purposes, turn arrow accesses into dot</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment">// accesses. The only access type we support that doesn't follow</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">// the C equivalence "a->b === (*a).b" is ObjC property accesses,</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment">// and those never use arrows, so this is unaffected.</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="keywordflow">if</span> (IsArrow) {</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *Ptr = BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>())</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> BaseType = Ptr-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>();</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *Ptr</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> = BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a>>())</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> BaseType = Ptr-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>();</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (BaseType-><a class="code" href="classclang_1_1Type.html#a6525adb10d549a7ee372424dcdb6b9bd">isRecordType</a>()) {</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment">// Recover from arrow accesses to records, e.g.:</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment">// struct MyRecord foo;</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment">// foo->bar</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment">// This is actually well-formed in C++ if MyRecord has an</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment">// overloaded operator->, but that should have been dealt with</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment">// by now--or a diagnostic message already issued if a problem</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment">// was encountered while looking for the overloaded operator->.</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="keywordflow">if</span> (!getLangOpts().CPlusPlus) {</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(OpLoc, diag::err_typecheck_member_reference_suggestion)</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> << BaseType << int(IsArrow) << BaseExpr.get()->getSourceRange()</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</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>(OpLoc, <span class="stringliteral">"."</span>);</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> }</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> IsArrow = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (BaseType-><a class="code" href="classclang_1_1Type.html#af0ae1f40cbbc07fabfefc86af91072e3">isFunctionType</a>()) {</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="keywordflow">goto</span> fail;</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::err_typecheck_member_reference_arrow)</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> << BaseType << BaseExpr.get()->getSourceRange();</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</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> }</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> </div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment">// Handle field access to simple records.</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *RTy = BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1RecordType.html">RecordType</a>>()) {</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="keywordflow">if</span> (<a class="code" href="SemaExprMember_8cpp.html#a4034b77c69a2f0323ba612ac49120dc8">LookupMemberExprInRecord</a>(*<span class="keyword">this</span>, R, BaseExpr.get()->getSourceRange(),</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> RTy, OpLoc, SS, HasTemplateArgs))</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> </div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment">// Returning valid-but-null is how we indicate to the caller that</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment">// the lookup result was filled in.</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="keywordflow">return</span> Owned((<a class="code" href="classclang_1_1Expr.html">Expr</a>*) 0);</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> }</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> </div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment">// Handle ivar access to Objective-C objects.</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *OTy = BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a>>()) {</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="keywordflow">if</span> (!SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae92a40568ee6a10431af2437af862b07" title="No scope specifier.">isEmpty</a>() && !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="l01238"></a><span class="lineno"> 1238</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(), diag::err_qualified_objc_access)</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> << 1 << SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae880473296a083a62b508203cf9c3f24" title="Retrieve the representation of the nested-name-specifier.">getScopeRep</a>()</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</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>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>());</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ad0146caf0e994e6d5982566d622ff8f9">clear</a>();</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> }</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> </div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Member = MemberName.getAsIdentifierInfo();</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="comment">// There are three cases for the base type:</span></div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment">// - builtin id (qualified or unqualified)</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment">// - builtin Class (qualified or unqualified)</span></div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment">// - an interface</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *IDecl = OTy->getInterface();</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="keywordflow">if</span> (!IDecl) {</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="keywordflow">if</span> (getLangOpts().ObjCAutoRefCount &&</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> (OTy->isObjCId() || OTy->isObjCClass()))</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="keywordflow">goto</span> fail;</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment">// There's an implicit 'isa' ivar on all objects.</span></div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment">// But we only actually find it this way on objects of type 'id',</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment">// apparently.</span></div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="keywordflow">if</span> (OTy->isObjCId() && Member-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"isa"</span>))</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="keywordflow">return</span> Owned(<span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1ObjCIsaExpr.html">ObjCIsaExpr</a>(BaseExpr.take(), IsArrow, MemberLoc,</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> OpLoc,</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#ade76e845ea190702bdf8e274c2aef90c" title="Represents the Objective-C Class type.">getObjCClassType</a>()));</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="keywordflow">if</span> (<a class="code" href="SemaExprMember_8cpp.html#a2204f53ed814e3f6cb3c512f0c9ac412">ShouldTryAgainWithRedefinitionType</a>(*<span class="keyword">this</span>, BaseExpr))</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="keywordflow">return</span> LookupMemberExpr(R, BaseExpr, IsArrow, OpLoc, SS,</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> ObjCImpDecl, HasTemplateArgs);</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="keywordflow">goto</span> fail;</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> </div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="keywordflow">if</span> (RequireCompleteType(OpLoc, BaseType, diag::err_typecheck_incomplete_tag,</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> BaseExpr.get()))</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> </div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *ClassDeclared = 0;</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IV = IDecl-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a1a0c954cf7c0fbbf77b4bf65c5a5c604">lookupInstanceVariable</a>(Member, ClassDeclared);</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> </div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="keywordflow">if</span> (!IV) {</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment">// Attempt to correct for typos in ivar names.</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <a class="code" href="classclang_1_1DeclFilterCCC.html" title="Simple template class for restricting typo correction candidates to ones having a single Decl* of the...">DeclFilterCCC<ObjCIvarDecl></a> Validator;</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> Validator.<a class="code" href="classclang_1_1CorrectionCandidateCallback.html#adb3b0c665de5f0492f6d86be8261bda9">IsObjCIvarLookup</a> = IsArrow;</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypoCorrection.html" title="Simple class containing the result of Sema::CorrectTypo.">TypoCorrection</a> Corrected = CorrectTypo(R.<a class="code" href="classclang_1_1LookupResult.html#a3c8df5e842b84094a77239c37c6231ae" title="Gets the name info to look up.">getLookupNameInfo</a>(),</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> LookupMemberName, <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>,</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> Validator, IDecl)) {</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> IV = Corrected.getCorrectionDeclAs<<a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a>>();</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> diagnoseTypo(Corrected,</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> PDiag(diag::err_typecheck_member_reference_ivar_suggest)</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> << IDecl-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() << MemberName);</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> </div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">// Figure out the class that declares the ivar.</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> assert(!ClassDeclared);</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D = cast<Decl>(IV-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>());</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *CAT = dyn_cast<ObjCCategoryDecl>(D))</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> D = CAT->getClassInterface();</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> ClassDeclared = cast<ObjCInterfaceDecl>(D);</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="keywordflow">if</span> (IsArrow && IDecl-><a class="code" href="classclang_1_1ObjCContainerDecl.html#af9e27df54a37f3414e0896d56a8c0b1f">FindPropertyDeclaration</a>(Member)) {</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, </div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> diag::err_property_found_suggest)</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> << Member << BaseExpr.get()->getType()</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</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>(OpLoc, <span class="stringliteral">"."</span>);</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</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> </div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::err_typecheck_member_reference_ivar)</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> << IDecl-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() << MemberName</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> << BaseExpr.get()->getSourceRange();</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">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> }</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> </div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> assert(ClassDeclared);</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> </div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment">// If the decl being referenced had an error, return an error for this</span></div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="comment">// sub-expr without emitting another error, in order to avoid cascading</span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment">// error cases.</span></div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="keywordflow">if</span> (IV-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>())</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> </div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment">// Check whether we can reference this field.</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="keywordflow">if</span> (DiagnoseUseOfDecl(IV, MemberLoc))</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="keywordflow">if</span> (IV-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a7f30051db17903f55c3519750886277a">getAccessControl</a>() != <a class="code" href="classclang_1_1ObjCIvarDecl.html#a6a902654b0b06d4a7392ab64a8ca3a9daf246d1b69208c10693eb0d3722350fc0">ObjCIvarDecl::Public</a> &&</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> IV-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a7f30051db17903f55c3519750886277a">getAccessControl</a>() != <a class="code" href="classclang_1_1ObjCIvarDecl.html#a6a902654b0b06d4a7392ab64a8ca3a9da6e3ec9b859a38f481125421b5d6f8c77">ObjCIvarDecl::Package</a>) {</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *ClassOfMethodDecl = 0;</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = getCurMethodDecl())</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> ClassOfMethodDecl = MD->getClassInterface();</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ObjCImpDecl && getCurFunctionDecl()) {</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="comment">// Case of a c-function declared inside an objc implementation.</span></div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="comment">// FIXME: For a c-style function nested inside an objc implementation</span></div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="comment">// class, there is no implementation context available, so we pass</span></div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment">// down the context as argument to this routine. Ideally, this context</span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">// need be passed down in the AST node and somehow calculated from the</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment">// AST for a function decl.</span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *IMPD =</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> dyn_cast<ObjCImplementationDecl>(ObjCImpDecl))</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> ClassOfMethodDecl = IMPD->getClassInterface();</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCCategoryImplDecl.html">ObjCCategoryImplDecl</a>* CatImplClass =</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> dyn_cast<ObjCCategoryImplDecl>(ObjCImpDecl))</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> ClassOfMethodDecl = CatImplClass->getClassInterface();</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> }</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="keywordflow">if</span> (!getLangOpts().DebuggerSupport) {</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="keywordflow">if</span> (IV-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a7f30051db17903f55c3519750886277a">getAccessControl</a>() == <a class="code" href="classclang_1_1ObjCIvarDecl.html#a6a902654b0b06d4a7392ab64a8ca3a9da8f6f25fa365a12828014e00b885acd8e">ObjCIvarDecl::Private</a>) {</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="keywordflow">if</span> (!<a class="code" href="namespaceclang.html#ad9d926b16adbdbc93705737b69d47cae" title="Determine whether two declarations declare the same entity.">declaresSameEntity</a>(ClassDeclared, IDecl) ||</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> !<a class="code" href="namespaceclang.html#ad9d926b16adbdbc93705737b69d47cae" title="Determine whether two declarations declare the same entity.">declaresSameEntity</a>(ClassOfMethodDecl, ClassDeclared))</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::error_private_ivar_access)</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> << IV-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>();</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!IDecl-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a475a3c7ebb9047da9464a1157789c1e1">isSuperClassOf</a>(ClassOfMethodDecl))</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="comment">// @protected</span></div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::error_protected_ivar_access)</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> << IV-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>();</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> }</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> }</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="keywordtype">bool</span> warn = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="keywordflow">if</span> (getLangOpts().ObjCAutoRefCount) {</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *BaseExp = BaseExpr.get()-><a class="code" href="classclang_1_1Expr.html#a54036c75e73ecdf081729210fa53e582">IgnoreParenImpCasts</a>();</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1UnaryOperator.html">UnaryOperator</a> *UO = dyn_cast<UnaryOperator>(BaseExp))</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="keywordflow">if</span> (UO->getOpcode() == <a class="code" href="namespaceclang.html#a8daaf3ab8b5c55053f6da47944e48fffa7fa8b49244d53a4c50b7d8e63257449e">UO_Deref</a>)</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> BaseExp = UO->getSubExpr()-><a class="code" href="classclang_1_1Expr.html#a397a707d10e0d3ac4a150325eafa4368">IgnoreParenCasts</a>();</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> </div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *DE = dyn_cast<DeclRefExpr>(BaseExp))</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="keywordflow">if</span> (DE->getType().getObjCLifetime() == <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300ad62a7a19d7027c37d407d2ca7638a89c" title="Reading or writing from this object requires a barrier call.">Qualifiers::OCL_Weak</a>) {</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(DE->getLocation(), diag::error_arc_weak_ivar_access);</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> warn = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> }</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> }</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="keywordflow">if</span> (warn) {</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = getCurMethodDecl()) {</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <a class="code" href="namespaceclang.html#a5dc786a6640e4d510cd8b68a5a87a140" title="A family of Objective-C methods.">ObjCMethodFamily</a> MF = MD->getMethodFamily();</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> warn = (MF != <a class="code" href="namespaceclang.html#a5dc786a6640e4d510cd8b68a5a87a140a7749fb8107514089095277752fe75ece">OMF_init</a> && MF != <a class="code" href="namespaceclang.html#a5dc786a6640e4d510cd8b68a5a87a140a64eaf6dd57d06411366a75201a9f2850">OMF_dealloc</a> && </div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> MF != <a class="code" href="namespaceclang.html#a5dc786a6640e4d510cd8b68a5a87a140a5722533aab245d187223d468bc37f736">OMF_finalize</a> &&</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> !IvarBacksCurrentMethodAccessor(IDecl, MD, IV));</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> }</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="keywordflow">if</span> (warn)</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::warn_direct_ivar_access) << IV-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>();</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> </div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <a class="code" href="classclang_1_1ObjCIvarRefExpr.html" title="ObjCIvarRefExpr - A reference to an ObjC instance variable.">ObjCIvarRefExpr</a> *Result = <span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1ObjCIvarRefExpr.html" title="ObjCIvarRefExpr - A reference to an ObjC instance variable.">ObjCIvarRefExpr</a>(IV, IV-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>(),</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> MemberLoc, OpLoc,</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> BaseExpr.take(),</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> IsArrow);</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> </div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="keywordflow">if</span> (getLangOpts().ObjCAutoRefCount) {</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="keywordflow">if</span> (IV-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#abf2b347a1ba0ed6b4fad08600273324f" title="getObjCLifetime - Returns lifetime attribute of this type.">getObjCLifetime</a>() == <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300ad62a7a19d7027c37d407d2ca7638a89c" title="Reading or writing from this object requires a barrier call.">Qualifiers::OCL_Weak</a>) {</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0" title="The level of the diagnostic, after it has been through mapping.">DiagnosticsEngine::Level</a> <a class="code" href="namespaceclang_1_1prec.html#a9bfbe31f4770359ea44ad42e7c7ed8ff">Level</a> =</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> Diags.getDiagnosticLevel(diag::warn_arc_repeated_use_of_weak,</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> MemberLoc);</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="keywordflow">if</span> (Level != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>)</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> recordUseOfEvaluatedWeak(Result);</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> }</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> }</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> </div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="keywordflow">return</span> Owned(Result);</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> </div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment">// Objective-C property access.</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *OPT;</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="keywordflow">if</span> (!IsArrow && (OPT = BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a>>())) {</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="keywordflow">if</span> (!SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae92a40568ee6a10431af2437af862b07" title="No scope specifier.">isEmpty</a>() && !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="l01397"></a><span class="lineno"> 1397</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(), diag::err_qualified_objc_access)</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> << 0 << SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae880473296a083a62b508203cf9c3f24" title="Retrieve the representation of the nested-name-specifier.">getScopeRep</a>()</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</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>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>());</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ad0146caf0e994e6d5982566d622ff8f9">clear</a>();</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> </div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> <span class="comment">// This actually uses the base as an r-value.</span></div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> BaseExpr = DefaultLvalueConversion(BaseExpr.take());</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="keywordflow">if</span> (BaseExpr.isInvalid())</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> assert(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a40efa7d4fe133c0a709f0df4b6fcc2bf" title="Determine whether the given types are equivalent after cvr-qualifiers have been removed.">hasSameUnqualifiedType</a>(BaseType, BaseExpr.get()->getType()));</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> </div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Member = MemberName.getAsIdentifierInfo();</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> </div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a> *OT = OPT-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#abb391d91721464c0dc1eb15f333637a9">getObjectType</a>();</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="comment">// id, with and without qualifiers.</span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="keywordflow">if</span> (OT-><a class="code" href="classclang_1_1ObjCObjectType.html#ae18c2f18b07e28f2923d25694c0b153f">isObjCId</a>()) {</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment">// Check protocols on qualified interfaces.</span></div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel = PP.getSelectorTable().getNullarySelector(Member);</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Decl.html">Decl</a> *PMDecl = <a class="code" href="SemaExprMember_8cpp.html#ae58304bf1184fda4a21d9cdf42767f8b">FindGetterSetterNameDecl</a>(OPT, Member, Sel, <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>)) {</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *PD = dyn_cast<ObjCPropertyDecl>(PMDecl)) {</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment">// Check the use of this declaration</span></div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> <span class="keywordflow">if</span> (DiagnoseUseOfDecl(PD, MemberLoc))</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> </div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="keywordflow">return</span> Owned(<span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1ObjCPropertyRefExpr.html">ObjCPropertyRefExpr</a>(PD,</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a87abdcb929904305709de24d315f3c4e">PseudoObjectTy</a>,</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>,</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a515e545564007a6528858a9bc912232a">OK_ObjCProperty</a>,</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> MemberLoc, </div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> BaseExpr.take()));</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> </div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *OMD = dyn_cast<ObjCMethodDecl>(PMDecl)) {</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="comment">// Check the use of this method.</span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="keywordflow">if</span> (DiagnoseUseOfDecl(OMD, MemberLoc))</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> SetterSel =</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> <a class="code" href="classclang_1_1SelectorTable.html#a80ef9bc630a09be0a8dcbfd59b011ac0" title="Return the default setter selector for the given identifier.">SelectorTable::constructSetterSelector</a>(PP.getIdentifierTable(),</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> PP.getSelectorTable(),</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> Member);</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *SMD = 0;</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Decl.html">Decl</a> *SDecl = <a class="code" href="SemaExprMember_8cpp.html#ae58304bf1184fda4a21d9cdf42767f8b">FindGetterSetterNameDecl</a>(OPT, <span class="comment">/*Property id*/</span>0, </div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> SetterSel, <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>))</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> SMD = dyn_cast<ObjCMethodDecl>(SDecl);</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> </div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="keywordflow">return</span> Owned(<span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1ObjCPropertyRefExpr.html">ObjCPropertyRefExpr</a>(OMD, SMD,</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a87abdcb929904305709de24d315f3c4e">PseudoObjectTy</a>,</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>, <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a515e545564007a6528858a9bc912232a">OK_ObjCProperty</a>,</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> MemberLoc, BaseExpr.take()));</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> }</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> }</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="comment">// Use of id.member can only be for a property reference. Do not</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="comment">// use the 'id' redefinition in this case.</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="keywordflow">if</span> (IsArrow && <a class="code" href="SemaExprMember_8cpp.html#a2204f53ed814e3f6cb3c512f0c9ac412">ShouldTryAgainWithRedefinitionType</a>(*<span class="keyword">this</span>, BaseExpr))</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> <span class="keywordflow">return</span> LookupMemberExpr(R, BaseExpr, IsArrow, OpLoc, SS,</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> ObjCImpDecl, HasTemplateArgs);</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">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>(<a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::err_property_not_found)</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> << MemberName << BaseType);</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</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> <span class="comment">// 'Class', unqualified only.</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> <span class="keywordflow">if</span> (OT-><a class="code" href="classclang_1_1ObjCObjectType.html#a4c0774874411f66a0b6e9bb2dc48ab91">isObjCClass</a>()) {</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="comment">// Only works in a method declaration (??!).</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = getCurMethodDecl();</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> <span class="keywordflow">if</span> (!MD) {</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> <span class="keywordflow">if</span> (<a class="code" href="SemaExprMember_8cpp.html#a2204f53ed814e3f6cb3c512f0c9ac412">ShouldTryAgainWithRedefinitionType</a>(*<span class="keyword">this</span>, BaseExpr))</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="keywordflow">return</span> LookupMemberExpr(R, BaseExpr, IsArrow, OpLoc, SS,</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> ObjCImpDecl, HasTemplateArgs);</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">goto</span> fail;</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> }</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> <span class="comment">// Also must look for a getter name which uses property syntax.</span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel = PP.getSelectorTable().getNullarySelector(Member);</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *IFace = MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae289a054485ee4d1d66b33e833e16091">getClassInterface</a>();</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *Getter;</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> <span class="keywordflow">if</span> ((Getter = IFace-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#afaeee0adc2fb09f1d7d84e59890267ba">lookupClassMethod</a>(Sel))) {</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> <span class="comment">// Check the use of this method.</span></div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> <span class="keywordflow">if</span> (DiagnoseUseOfDecl(Getter, MemberLoc))</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> Getter = IFace-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#ac1332a66d16b767c2ae573f7bd17d101" title="Lookup a method in the classes implementation hierarchy.">lookupPrivateMethod</a>(Sel, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="comment">// If we found a getter then this may be a valid dot-reference, we</span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> <span class="comment">// will look for the matching setter, in case it is needed.</span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> SetterSel =</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> <a class="code" href="classclang_1_1SelectorTable.html#a80ef9bc630a09be0a8dcbfd59b011ac0" title="Return the default setter selector for the given identifier.">SelectorTable::constructSetterSelector</a>(PP.getIdentifierTable(),</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> PP.getSelectorTable(),</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> Member);</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *Setter = IFace-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#afaeee0adc2fb09f1d7d84e59890267ba">lookupClassMethod</a>(SetterSel);</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> <span class="keywordflow">if</span> (!Setter) {</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> <span class="comment">// If this reference is in an @implementation, also check for 'private'</span></div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <span class="comment">// methods.</span></div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> Setter = IFace-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#ac1332a66d16b767c2ae573f7bd17d101" title="Lookup a method in the classes implementation hierarchy.">lookupPrivateMethod</a>(SetterSel, <span class="keyword">false</span>);</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">if</span> (Setter && DiagnoseUseOfDecl(Setter, MemberLoc))</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</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> <span class="keywordflow">if</span> (Getter || Setter) {</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> <span class="keywordflow">return</span> Owned(<span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1ObjCPropertyRefExpr.html">ObjCPropertyRefExpr</a>(Getter, Setter,</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a87abdcb929904305709de24d315f3c4e">PseudoObjectTy</a>,</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>, <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a515e545564007a6528858a9bc912232a">OK_ObjCProperty</a>,</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> MemberLoc, BaseExpr.take()));</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="keywordflow">if</span> (<a class="code" href="SemaExprMember_8cpp.html#a2204f53ed814e3f6cb3c512f0c9ac412">ShouldTryAgainWithRedefinitionType</a>(*<span class="keyword">this</span>, BaseExpr))</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> <span class="keywordflow">return</span> LookupMemberExpr(R, BaseExpr, IsArrow, OpLoc, SS,</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> ObjCImpDecl, HasTemplateArgs);</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="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>(<a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(MemberLoc, diag::err_property_not_found)</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> << MemberName << BaseType);</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> }</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> </div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="comment">// Normal property access.</span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> <span class="keywordflow">return</span> HandleExprPropertyRefExpr(OPT, BaseExpr.get(), OpLoc, </div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> MemberName, MemberLoc,</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(), <a class="code" href="classclang_1_1QualType.html">QualType</a>(), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> }</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> </div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> <span class="comment">// Handle 'field access' to vectors, such as 'V.xx'.</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> <span class="keywordflow">if</span> (BaseType-><a class="code" href="classclang_1_1Type.html#aa46cb894fc6f6f4e43d48232b6129d0b">isExtVectorType</a>()) {</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment">// FIXME: this expr should store IsArrow.</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Member = MemberName.getAsIdentifierInfo();</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340" title="The categorization of expression values, currently following the C++11 scheme.">ExprValueKind</a> VK = (IsArrow ? <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a> : BaseExpr.get()->getValueKind());</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> ret = <a class="code" href="SemaExprMember_8cpp.html#a6f244fc31207d9571bb34181894efa74">CheckExtVectorComponent</a>(*<span class="keyword">this</span>, BaseType, VK, OpLoc,</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> Member, MemberLoc);</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="keywordflow">if</span> (ret.<a class="code" href="classclang_1_1QualType.html#a8f87f58000490ad01cd09add1f27d7ac" title="isNull - Return true if this QualType doesn't point to a type yet.">isNull</a>())</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> </div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> <span class="keywordflow">return</span> Owned(<span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1ExtVectorElementExpr.html">ExtVectorElementExpr</a>(ret, VK, BaseExpr.take(),</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> *Member, MemberLoc));</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> </div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> <span class="comment">// Adjust builtin-sel to the appropriate redefinition type if that's</span></div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> <span class="comment">// not just a pointer to builtin-sel again.</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> <span class="keywordflow">if</span> (IsArrow &&</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> BaseType-><a class="code" href="classclang_1_1Type.html#a80b0e59f59905a7a1d564a0b3768f04d" title="isSpecificBuiltinType - Test for a particular builtin type.">isSpecificBuiltinType</a>(BuiltinType::ObjCSel) &&</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> !<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a135de567d3745d08562d3d9f7d472ed5" title="Retrieve the type that 'SEL' has been defined to, which may be different from the built-in 'SEL' if '...">getObjCSelRedefinitionType</a>()-><a class="code" href="classclang_1_1Type.html#ae216e38f4426675ac45ff7b6e9e52939">isObjCSelType</a>()) {</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> BaseExpr = ImpCastExprToType(BaseExpr.take(), </div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a135de567d3745d08562d3d9f7d472ed5" title="Retrieve the type that 'SEL' has been defined to, which may be different from the built-in 'SEL' if '...">getObjCSelRedefinitionType</a>(),</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> <a class="code" href="namespaceclang.html#aa8bdb68daa57cbb2096f354001e2df8ca183b8948b82911a415cc54446ddcb3ab">CK_BitCast</a>);</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> <span class="keywordflow">return</span> LookupMemberExpr(R, BaseExpr, IsArrow, OpLoc, SS,</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> ObjCImpDecl, HasTemplateArgs);</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> </div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="comment">// Failure cases.</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> fail:</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> </div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> <span class="comment">// Recover from dot accesses to pointers, e.g.:</span></div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> <span class="comment">// type *foo;</span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> <span class="comment">// foo.bar</span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> <span class="comment">// This is actually well-formed in two cases:</span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> <span class="comment">// - 'type' is an Objective C type</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> <span class="comment">// - 'bar' is a pseudo-destructor name which happens to refer to</span></div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> <span class="comment">// the appropriate pointer type</span></div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *Ptr = BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>()) {</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> <span class="keywordflow">if</span> (!IsArrow && Ptr->getPointeeType()->isRecordType() &&</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span> MemberName.getNameKind() != <a class="code" href="classclang_1_1DeclarationName.html#a9ab322d434446b43379d39e41af5cbe3a3dd601f149fac45969958b93199092dc">DeclarationName::CXXDestructorName</a>) {</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(OpLoc, diag::err_typecheck_member_reference_suggestion)</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> << BaseType << int(IsArrow) << BaseExpr.get()->getSourceRange()</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</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>(OpLoc, <span class="stringliteral">"->"</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">// Recurse as an -> access.</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> IsArrow = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> <span class="keywordflow">return</span> LookupMemberExpr(R, BaseExpr, IsArrow, OpLoc, SS,</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span> ObjCImpDecl, HasTemplateArgs);</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> }</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> }</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> </div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> <span class="comment">// If the user is trying to apply -> or . to a function name, it's probably</span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> <span class="comment">// because they forgot parentheses to call that function.</span></div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> <span class="keywordflow">if</span> (tryToRecoverWithCall(BaseExpr,</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> PDiag(diag::err_member_reference_needs_call),</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> <span class="comment">/*complain*/</span> <span class="keyword">false</span>,</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> IsArrow ? &<a class="code" href="SemaExprMember_8cpp.html#a29d996afa023b3358f44cfb05c25bca5">isPointerToRecordType</a> : &<a class="code" href="SemaExprMember_8cpp.html#a5b32f1f5458cdcce08266b011ebd034b">isRecordType</a>)) {</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> <span class="keywordflow">if</span> (BaseExpr.isInvalid())</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> BaseExpr = DefaultFunctionArrayConversion(BaseExpr.take());</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> <span class="keywordflow">return</span> LookupMemberExpr(R, BaseExpr, IsArrow, OpLoc, SS,</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> ObjCImpDecl, HasTemplateArgs);</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> </div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(OpLoc, diag::err_typecheck_member_reference_struct_union)</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> << BaseType << BaseExpr.get()->getSourceRange() << MemberLoc;</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> </div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> }</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> <span class="comment"></span></div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="comment">/// The main callback when the parser finds something like</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> <span class="comment">/// expression . [nested-name-specifier] identifier</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> <span class="comment">/// expression -> [nested-name-specifier] identifier</span></div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> <span class="comment">/// where 'identifier' encompasses a fairly broad spectrum of</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="comment">/// possibilities, including destructor and operator references.</span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> <span class="comment">/// \param OpKind either tok::arrow or tok::period</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> <span class="comment">/// \param HasTrailingLParen whether the next token is '(', which</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="comment">/// is used to diagnose mis-uses of special members that can</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> <span class="comment">/// only be called</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> <span class="comment">/// \param ObjCImpDecl the current Objective-C \@implementation</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> <span class="comment">/// decl; this is an ugly hack around the fact that Objective-C</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> <span class="comment">/// \@implementations aren't properly put in the context chain</span></div>
+<div class="line"><a name="l01602"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#a67b1bfa5f005492236ea16f0b5b0a8be"> 1602</a></span> <span class="comment"></span><a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> <a class="code" href="classclang_1_1Sema.html#a67b1bfa5f005492236ea16f0b5b0a8be">Sema::ActOnMemberAccessExpr</a>(<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_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1Base.html">Base</a>,</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> OpLoc,</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</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> OpKind,</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</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="l01606"></a><span class="lineno"> 1606</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,</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</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="l01608"></a><span class="lineno"> 1608</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *ObjCImpDecl,</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="keywordtype">bool</span> HasTrailingLParen) {</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>() && 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="l01611"></a><span class="lineno"> 1611</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</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> <span class="comment">// Warn about the explicit constructor calls Microsoft extension.</span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> <span class="keywordflow">if</span> (getLangOpts().MicrosoftExt &&</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> Id.<a class="code" href="classclang_1_1UnqualifiedId.html#afe84a760cca9962b8873d220aaa0a479" title="Determine what kind of name we have.">getKind</a>() == <a class="code" href="classclang_1_1UnqualifiedId.html#a13c965a3b07b46673fc277c3e0eaa11ba254f2b89641948cd1176189d972993bf" title="A constructor name.">UnqualifiedId::IK_ConstructorName</a>)</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> <a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>(Id.<a class="code" href="classclang_1_1UnqualifiedId.html#a79268390f0aa348edea4ee6041aa256d" title="Return the source range that covers this unqualified-id.">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(),</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> diag::ext_ms_explicit_constructor_call);</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> </div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> TemplateArgsBuffer;</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> </div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> <span class="comment">// Decompose the name into its component parts.</span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> NameInfo;</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> *TemplateArgs;</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> DecomposeUnqualifiedId(Id, TemplateArgsBuffer,</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> NameInfo, TemplateArgs);</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> </div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> Name = NameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a4a662304441c06d60ec1764e515337c4" title="getName - Returns the embedded declaration name.">getName</a>();</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> <span class="keywordtype">bool</span> IsArrow = (OpKind == tok::arrow);</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> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FirstQualifierInScope</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> = (!SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae27d587ba7dae0cfdcdfa2f7f5472c3c">isSet</a>() ? 0 : FindFirstQualifierInScope(S,</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> static_cast<NestedNameSpecifier*>(SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae880473296a083a62b508203cf9c3f24" title="Retrieve the representation of the nested-name-specifier.">getScopeRep</a>())));</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> </div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> <span class="comment">// This is a postfix expression, so get rid of ParenListExprs.</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> Result = MaybeConvertParenListExprToParenExpr(S, Base);</div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> <span class="keywordflow">if</span> (Result.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>()) <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> Base = Result.<a class="code" href="classclang_1_1ActionResult.html#a938165c101b60e87ee1956ed4950fd9a">take</a>();</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> </div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> <span class="keywordflow">if</span> (Base-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()-><a class="code" href="classclang_1_1Type.html#a7e475b7859ae970eb837da95e94ab26c">isDependentType</a>() || Name.<a class="code" href="classclang_1_1DeclarationName.html#af67a8f446f13b46fb722e936681a77eb" title="Determines whether the name itself is dependent, e.g., because it involves a C++ type that is itself ...">isDependentName</a>() ||</div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> isDependentScopeSpecifier(SS)) {</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> Result = ActOnDependentMemberExpr(Base, Base-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(),</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> IsArrow, OpLoc,</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> SS, TemplateKWLoc, FirstQualifierInScope,</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> NameInfo, TemplateArgs);</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> R(*<span class="keyword">this</span>, NameInfo, LookupMemberName);</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> <a class="code" href="classclang_1_1ActionResult.html">BaseResult</a> = Owned(Base);</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> Result = LookupMemberExpr(R, BaseResult, IsArrow, OpLoc,</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> SS, ObjCImpDecl, TemplateArgs != 0);</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="keywordflow">if</span> (BaseResult.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>())</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> Base = BaseResult.<a class="code" href="classclang_1_1ActionResult.html#a938165c101b60e87ee1956ed4950fd9a">take</a>();</div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> </div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="keywordflow">if</span> (Result.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>()) {</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> Owned(Base);</div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> }</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> </div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> <span class="keywordflow">if</span> (Result.<a class="code" href="classclang_1_1ActionResult.html#a75d6bbdafaa638e85809e113629401ca">get</a>()) {</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> <span class="comment">// The only way a reference to a destructor can be used is to</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> <span class="comment">// immediately call it, which falls into this case. If the</span></div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> <span class="comment">// next token is not a '(', produce a diagnostic and build the</span></div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> <span class="comment">// call now.</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="keywordflow">if</span> (!HasTrailingLParen &&</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> Id.<a class="code" href="classclang_1_1UnqualifiedId.html#afe84a760cca9962b8873d220aaa0a479" title="Determine what kind of name we have.">getKind</a>() == <a class="code" href="classclang_1_1UnqualifiedId.html#a13c965a3b07b46673fc277c3e0eaa11bab6c68b3724b7a3219cb37a648a3ca353" title="A destructor name.">UnqualifiedId::IK_DestructorName</a>)</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> <span class="keywordflow">return</span> DiagnoseDtorReference(NameInfo.<a class="code" href="structclang_1_1DeclarationNameInfo.html#a47f8f8d3dab3d4ae666ac99f15b58b02" title="getLoc - Returns the main location of the declaration name.">getLoc</a>(), Result.<a class="code" href="classclang_1_1ActionResult.html#a75d6bbdafaa638e85809e113629401ca">get</a>());</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> </div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> }</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> </div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <a class="code" href="structclang_1_1Sema_1_1ActOnMemberAccessExtraArgs.html">ActOnMemberAccessExtraArgs</a> ExtraArgs = {<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, Id, ObjCImpDecl, HasTrailingLParen};</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> Result = BuildMemberReferenceExpr(Base, Base-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(),</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span> OpLoc, IsArrow, SS, TemplateKWLoc,</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> FirstQualifierInScope, R, TemplateArgs,</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> <span class="keyword">false</span>, &ExtraArgs);</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> }</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> </div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> <span class="keywordflow">return</span> Result;</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> </div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> <span class="keyword">static</span> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l01682"></a><span class="lineno"><a class="code" href="SemaExprMember_8cpp.html#a3473a90a97fb8eb0849bd494915bcdde"> 1682</a></span> <a class="code" href="SemaExprMember_8cpp.html#a3473a90a97fb8eb0849bd494915bcdde">BuildFieldReferenceExpr</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <a class="code" href="classclang_1_1Expr.html">Expr</a> *BaseExpr, <span class="keywordtype">bool</span> IsArrow,</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXScopeSpec.html" title="Represents a C++ nested-name-specifier or a global scope specifier.">CXXScopeSpec</a> &SS, <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *Field,</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> <a class="code" href="classclang_1_1DeclAccessPair.html">DeclAccessPair</a> FoundDecl,</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &MemberNameInfo) {</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> <span class="comment">// x.a is an l-value if 'a' has a reference type. Otherwise:</span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> <span class="comment">// x.a is an l-value/x-value/pr-value if the base is (and note</span></div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="comment">// that *x is always an l-value), except that if the base isn't</span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> <span class="comment">// an ordinary object then we must have an rvalue.</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340" title="The categorization of expression values, currently following the C++11 scheme.">ExprValueKind</a> VK = <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>;</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1" title="A further classification of the kind of object referenced by an l-value or x-value.">ExprObjectKind</a> OK = <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a83fc60c978ed1f1be293f1d2fcb6b5c5" title="An ordinary object is located at an address in memory.">OK_Ordinary</a>;</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> <span class="keywordflow">if</span> (!IsArrow) {</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> <span class="keywordflow">if</span> (BaseExpr-><a class="code" href="classclang_1_1Expr.html#a6fd3892ddf8334fc9b311daaa93a27f5">getObjectKind</a>() == <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a83fc60c978ed1f1be293f1d2fcb6b5c5" title="An ordinary object is located at an address in memory.">OK_Ordinary</a>)</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> VK = BaseExpr-><a class="code" href="classclang_1_1Expr.html#aacbe243ee99ac093e4eba5e40d6a9edb" title="getValueKind - The value kind that this expression produces.">getValueKind</a>();</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> VK = <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a7486248bcb086a1f969a9e138208dcd7" title="An r-value expression (a pr-value in the C++11 taxonomy) produces a temporary value.">VK_RValue</a>;</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> }</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> <span class="keywordflow">if</span> (VK != <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a7486248bcb086a1f969a9e138208dcd7" title="An r-value expression (a pr-value in the C++11 taxonomy) produces a temporary value.">VK_RValue</a> && Field-><a class="code" href="classclang_1_1FieldDecl.html#af8c123e193d426f26496c15e2f168a49" title="isBitfield - Determines whether this field is a bitfield.">isBitField</a>())</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> OK = <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a9055ba3536b1c12453fbc1c170ed314f" title="A bitfield object is a bitfield on a C or C++ record.">OK_BitField</a>;</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> </div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> <span class="comment">// Figure out the type of the member; see C99 6.5.2.3p3, C++ [expr.ref]</span></div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> MemberType = Field-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ReferenceType.html">ReferenceType</a> *Ref = MemberType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ReferenceType.html">ReferenceType</a>>()) {</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> MemberType = Ref-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>();</div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> VK = <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>;</div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> BaseType = BaseExpr-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> <span class="keywordflow">if</span> (IsArrow) BaseType = BaseType-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>()->getPointeeType();</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> <a class="code" href="classclang_1_1Qualifiers.html">Qualifiers</a> BaseQuals = BaseType.<a class="code" href="classclang_1_1QualType.html#a4a3d75cf019a2e769498ef8d6878888b" title="Retrieve the set of qualifiers applied to this type.">getQualifiers</a>();</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> </div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> <span class="comment">// GC attributes are never picked up by members.</span></div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> BaseQuals.<a class="code" href="classclang_1_1Qualifiers.html#a603b7e8eeb31d10e73c757eb4a7ca813">removeObjCGCAttr</a>();</div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> </div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment">// CVR attributes from the base are picked up by members,</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="comment">// except that 'mutable' members don't pick up 'const'.</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <span class="keywordflow">if</span> (Field-><a class="code" href="classclang_1_1FieldDecl.html#a24d01ef63ff78b23df6a4f17f6a02527" title="isMutable - Determines whether this field is mutable (C++ only).">isMutable</a>()) BaseQuals.<a class="code" href="classclang_1_1Qualifiers.html#a6e54373de505039b0d865a3199d6cbd5">removeConst</a>();</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> <a class="code" href="classclang_1_1Qualifiers.html">Qualifiers</a> MemberQuals</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> = S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a7e70bb7eebf01548a0cab752e390ba37" title="Return the canonical (structural) type corresponding to the specified potentially non-canonical type ...">getCanonicalType</a>(MemberType).<a class="code" href="classclang_1_1CanQual.html#a00e8d09cb751e6973746af70646da639" title="Retrieve all qualifiers.">getQualifiers</a>();</div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> </div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> assert(!MemberQuals.<a class="code" href="classclang_1_1Qualifiers.html#ad295c64f93a74e7533546962903f67ce">hasAddressSpace</a>());</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> </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> <a class="code" href="classclang_1_1Qualifiers.html">Qualifiers</a> Combined = BaseQuals + MemberQuals;</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> <span class="keywordflow">if</span> (Combined != MemberQuals)</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> MemberType = S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a1995e62dee79876059ef940d76a38983" title="Un-split a SplitQualType.">getQualifiedType</a>(MemberType, Combined);</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> }</div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> </div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> S.<a class="code" href="classclang_1_1Sema.html#a71c389aadff3751f23172f78b4b86948" title="Set containing all declared private fields that are not used.">UnusedPrivateFields</a>.remove(Field);</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> <a class="code" href="classclang_1_1ActionResult.html">ExprResult</a> <a class="code" href="classclang_1_1Base.html">Base</a> =</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> S.<a class="code" href="classclang_1_1Sema.html#ae5c238c1a592dd03ccbd9cf4587d8a8d" title="Cast a base object to a member's actual type.">PerformObjectMemberConversion</a>(BaseExpr, SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#ae880473296a083a62b508203cf9c3f24" title="Retrieve the representation of the nested-name-specifier.">getScopeRep</a>(),</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> FoundDecl, Field);</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> <span class="keywordflow">if</span> (Base.<a class="code" href="classclang_1_1ActionResult.html#ac9ac9ca2df07fbb1931300e2a926351a">isInvalid</a>())</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#a9ae224fb900de5598d2c22f31c0ccea7">ExprError</a>();</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> <span class="keywordflow">return</span> S.<a class="code" href="classclang_1_1Sema.html#ae88e27735e88a2d4ef2d863eab8865ba">Owned</a>(<a class="code" href="SemaExprMember_8cpp.html#aec6106693249688b3d7b4da481408614" title="Build a MemberExpr AST node.">BuildMemberExpr</a>(S, S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>, Base.<a class="code" href="classclang_1_1ActionResult.html#a938165c101b60e87ee1956ed4950fd9a">take</a>(), IsArrow, SS,</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> <span class="comment">/*TemplateKWLoc=*/</span><a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(),</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> Field, FoundDecl, MemberNameInfo,</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> MemberType, VK, OK));</div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> }</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="comment"></span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="comment">/// Builds an implicit member access expression. The current context</span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="comment">/// is known to be an instance method, and the given unqualified lookup</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> <span class="comment">/// set is known to contain only instance members, at least one of which</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> <span class="comment">/// is from an appropriate type.</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="comment"></span><a class="code" href="classclang_1_1ActionResult.html">ExprResult</a></div>
+<div class="line"><a name="l01748"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#a73d74b583903eaf916520feb51ba8574"> 1748</a></span> <a class="code" href="classclang_1_1Sema.html#a73d74b583903eaf916520feb51ba8574">Sema::BuildImplicitMemberExpr</a>(<span class="keyword">const</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="l01749"></a><span class="lineno"> 1749</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,</div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> &R,</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> *TemplateArgs,</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="keywordtype">bool</span> IsKnownInstance) {</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> assert(!R.<a class="code" href="classclang_1_1LookupResult.html#a9f44c1cd9d9c7e84dd0202538dd72cd7" title="Return true if no decls were found.">empty</a>() && !R.<a class="code" href="classclang_1_1LookupResult.html#ad40ced676b01c7ef20a8a3612869bf54">isAmbiguous</a>());</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> </div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="namespaceclang_1_1ast__matchers.html#af2a0068a0d7c4962e52a7a70967fa5df" title="Matches TypeLocs for which the given inner QualType-matcher matches.">loc</a> = R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>();</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> </div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> <span class="comment">// We may have found a field within an anonymous union or struct</span></div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> <span class="comment">// (C++ [class.union]).</span></div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <span class="comment">// FIXME: template-ids inside anonymous structs?</span></div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1IndirectFieldDecl.html">IndirectFieldDecl</a> *FD = R.<a class="code" href="classclang_1_1LookupResult.html#a94bcf1d27520ce8a3a9603e76dd4acee">getAsSingle</a><<a class="code" href="classclang_1_1IndirectFieldDecl.html">IndirectFieldDecl</a>>())</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="keywordflow">return</span> BuildAnonymousStructUnionMemberReference(SS, R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>(), FD,</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> R.<a class="code" href="classclang_1_1LookupResult.html#a460debe22c59694c326b3c4671726889">begin</a>().<a class="code" href="classclang_1_1UnresolvedSetIterator.html#a8d31ef55bb8da11b7f0a6a4af9c764c9">getPair</a>());</div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> </div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> <span class="comment">// If this is known to be an instance access, go ahead and build an</span></div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> <span class="comment">// implicit 'this' expression now.</span></div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> <span class="comment">// 'this' expression now.</span></div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> ThisTy = getCurrentThisType();</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> assert(!ThisTy.isNull() && <span class="stringliteral">"didn't correctly pre-flight capture of 'this'"</span>);</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> </div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *baseExpr = 0; <span class="comment">// null signifies implicit access</span></div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> <span class="keywordflow">if</span> (IsKnownInstance) {</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</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 = R.<a class="code" href="classclang_1_1LookupResult.html#af980e0b636ede7d9e0018dff05b0d269">getNameLoc</a>();</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="keywordflow">if</span> (SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#acdaac0809b0eec9ce9ec88e1a9da7fb6">isValid</a>())</div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> Loc = SS.<a class="code" href="classclang_1_1CXXScopeSpec.html#a4cd627def4f36f863b61b77477d137eb">getRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>();</div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> CheckCXXThisCapture(Loc);</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> baseExpr = <span class="keyword">new</span> (<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) <a class="code" href="classclang_1_1CXXThisExpr.html" title="Represents the this expression in C++.">CXXThisExpr</a>(loc, ThisTy, <span class="comment">/*isImplicit=*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> }</div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> </div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> <span class="keywordflow">return</span> BuildMemberReferenceExpr(baseExpr, ThisTy,</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> <span class="comment">/*OpLoc*/</span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(),</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> <span class="comment">/*IsArrow*/</span> <span class="keyword">true</span>,</div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> SS, TemplateKWLoc,</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> <span class="comment">/*FirstQualifierInScope*/</span> 0,</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> R, TemplateArgs);</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:14:05 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/SemaExprMember_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprMember_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprMember_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SemaExprMember_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,589 @@
+<!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: SemaExprMember.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c3cadfa2fbef89a3b8f57073e8a31f9.html">Sema</a></li><li class="navelem"><a class="el" href="dir_eb0099ce9b4bd055698282f76081f892.html">Release+Asserts</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">SemaExprMember.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="SemaExprMember_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> /home/tstellar/llvm/tools/clang/lib/Sema/Release+Asserts/SemaExprMember.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> /home/tstellar/llvm/tools/clang/lib/Sema/Release+Asserts/SemaExprMember.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> SemaExprMember.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaInternal.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#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/Sema/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> /home/tstellar/llvm/include/llvm/Support/SMLoc.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaDiagnostic.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticSemaKinds.inc \</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTLambda.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclTemplate.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Lookup.h \</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Scope.h</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaInternal.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/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="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/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="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/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="l00297"></a><span class="lineno"> 297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Sema.h:</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/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="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/MangleNumberingContext.h:</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NSAPI.h:</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.def:</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TemplateKinds.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Module.h:</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> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</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> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AnalysisBasedWarnings.h:</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/DeclSpec.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Lambda.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h:</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttributeList.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Ownership.h:</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttrParsedAttrList.inc:</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ExternalSemaSource.h:</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/TypoCorrection.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Weak.h:</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> /home/tstellar/llvm/include/llvm/ADT/MapVector.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/IdentifierResolver.h:</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/LocInfoType.h:</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ObjCMethodList.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ScopeInfo.h:</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h:</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h:</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> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h:</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> /home/tstellar/llvm/include/llvm/Support/SMLoc.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaDiagnostic.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticSemaKinds.inc:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTLambda.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclTemplate.h:</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h:</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.h:</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h:</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h:</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h:</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> </div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h:</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h:</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h:</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</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> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> </div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Lookup.h:</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Scope.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:14:05 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